Dies ist die Erweiterung here.
Daten wie folgt aussehen:Anzahl nach Ebenen in mehreren Spalten
ID Type Problem1 Value1 Problem2 Value2 Problem3 Value3
1 A X 500 Y 1000 Z 400
2 A X 600 Z 700
3 B Y 700 Z 100
4 B W 200 V 200
5 C Z 500 V 500
6 C X 1000 W 100 V 900
Das Ergebnis, das ich will, ist:
Type X Y Z W V
A 2 1 2 0 0
B 0 1 1 1 1
C 1 0 1 1 2
Ich will die Nummer unter jeder Gruppe zählen, wie kann ich tun?
# data
dt <- fread("
ID Type Problem1 Value1 Problem2 Value2 Problem3 Value3
1 A X 500 Y 1000 Z 400
2 A X 600 Z 700
3 B Y 700 Z 100
4 B W 200 V 200
5 C Z 500 V 500
6 C X 1000 W 100 V 900", fill = T)
ich versuchen, dieses:
dcast(melt(dt, measure = patterns("^Value", "^Problem"),
value.name = c("Value", "Problem"))[Problem != ""
][, Problem := factor(Problem, levels = c("X", "Y", "Z", "W", "V"))],
Type ~Problem, value.var = "Value", sum/mean, na.rm = TRUE)
aber es hat den Fehler.
ich diesen 'bekam Mit‚Problem‘als Wertspalte. Verwenden Sie 'value.var' zum Überschreiben Fehler in make.unique (sapply (unlist (lvar), all.vars, max.names = 1L),: 'sep' muss eine Zeichenfolge sein ' –
@PeterChen Hm, I Ich bin mir nicht sicher, warum das passieren würde. Ist es für dieses Beispiel oder ein anderes? Da jemand Ihren Kommentar upvotiert hat, denke ich, dass es ein Problem mit der data.table-Version sein könnte. Ich teste am 1.10.4 (was war die letzte Version auf CRAN bis letzte Woche) und sah es funktioniert. – Frank