Ich versuche, Spalten zu meinem data.table
hinzuzufügen, wo die Namen dynamisch sind. Ich brauche zusätzlich das Argument by
beim Hinzufügen dieser Spalten. Zum Beispiel:Dynamische Spaltennamen in data.table
test_dtb <- data.table(a = sample(1:100, 100), b = sample(1:100, 100), id = rep(1:10,10))
cn <- parse(text = "blah")
test_dtb[ , eval(cn) := mean(a), by = id]
# Error in `[.data.table`(test_dtb, , `:=`(eval(cn), mean(a)), by = id) :
# LHS of := must be a single column name when with=TRUE. When with=FALSE the LHS may be a vector of column names or positions.
Ein weiterer Versuch:
cn <- "blah"
test_dtb[ , cn := mean(a), by = id, with = FALSE]
# Error in `[.data.table`(test_dtb, , `:=`(cn, mean(a)), by = id, with = FALSE) : 'with' must be TRUE when 'by' or 'keyby' is provided
Update von Matthew:
Dies funktioniert nun in v1.8.3 auf R-Forge. Danke für die Hervorhebung!
Sehen Sie diese ähnliche Frage für neue Beispiele:
Assign multiple columns using data.table, by group
fantastisch, danke. Ich hätte schwören können, dass ich diese Variante ausprobiert habe, aber offensichtlich nicht. Hilfe sehr geschätzt. – Alex
+1 Ein Link zu dieser Frage wurde zu [FR # 2120] hinzugefügt (https://r-forge.r-project.org/tracker/index.php?func=detail&aid=2120&group_id=240&atid=978). Scheint ziemlich hoch zu kommen. –