Ich wiederhole die Spalten in einem Datenrahmen (es ist auch eine Datentabelle später in meinem Code). In SQL, das entspricht, was ich will für jede Variable tun wie folgt aussieht:data.table SELECT GROUP BY Spaltenindex in R?
SELECT COUNT(VAR) FROM df GROUP BY MonthYear
ich einige Probleme, die in R tun Sache, though. Die Datei, die ich habe, ist schlecht strukturiert, so habe ich eine Art von dplyr
+ data.table
Workaround Ich versuche, funktional zu bekommen.
library(dplyr)
library(data.table)
df <- data.frame(MonthYear = c("JAN15", "JAN15", "FEB15", "MAR15", "MAR15"), V1 = c(1,1,0,0,0), V2 = c(0,1,1,1,0), V3 = c(0,0,0,1,1), V4 = c(0,1,1,1,1))
for(colNum in 2:length(names(df))){
colName <- names(df)[colNum]
filtered <- select(df, c(1, colNum))
filtered_dt <- data.table(filtered, key = "MonthYear")
trimmed <- filtered_dt[, count = sum(colName), by = key(filtered_dt)]
}
Daraus resultiert und Fehler:
Error in sum(column) : invalid 'type' (character) of argument
Für V1
, ich weiß, die trimmed
Zuordnung soll wie folgt aussehen:
trimmed <- filtered_dt[, count = sum(V1), by = key(filtered_dt)]
Ich weiß nur nicht, wie das Zeichen zu bekommen Wert von "V1"
, um diese Syntax anzupassen.
Sie haben einen Tippfehler. Wickle das 'count = sum (colName)' in '.()'. Dies ist in der FAQ: https://rawgit.com/wiki/Rdatatable/data.table/vignettes/datatable-faq.html#unused-arguments-mysum-sumv Nicht sicher, ob das dein einziges Problem ist. – Frank
Das beantwortet meine Frage aber immer noch nicht. Ich bekomme den gleichen Fehler. Wie kann ich den 'character'' "V1" -Wert in dieser "getrimmten" Linie arbeiten lassen? – blacksite
Sorry, ich wollte nicht vorschlagen, dass es deine Frage beantwortet hat. – Frank