2016-12-20 5 views
2

たとえば、参考文献(:=を使用)で列を作成するときに列名を動的に追加できることはわかっています。ここに:Dynamic column names in data.table集計時に動的に列名をdata.tableに追加します

しかし、集計するときに列名を動的に追加する方法を検討しています。これで助けてもらえますか?

test_dtb <- data.table(a = sample(1:100, 100), b = sample(1:100, 100), id = rep(1:10, 10)) 
m = "blah" 
test_dtb[ , list((m) = mean(b)), by = id] 

私が手にエラーがジャストdata.tableは、 "m" は変数名ではありません知っていることを確認してください

Error: unexpected '=' in "test_dtb[ , list((m) = 
+1

(http://stackoverflow.com/a/37143023/2204410)[多分これが役立ちます] – Jaap

+0

その長さは1から5まで変わることがあります。私は、どのインデックスをどのインデックスから設定するのが難しいと思います。 – theArun

+3

'm = c(" blah "、" foo "); test_dtb [、setNames(list(mean(b)、median(b))、by = id]'? – lukeA

答えて

0

:私はプログラム的にm個の変数を作成してい

m = c("blah", "foo");test_dtb[,setNames(list(mean(b),median(b)), m),by = id]? 
-1

です。

かっこまたは "c"が行います。

lukeAのコメントで述べたように
test_dtb[, (m) := mean(b),by = id] 
test_dtb[, c(m) := mean(b),by = id] 
+0

質問で言及したように、while(while)私は集計しています。コメントの回答はそれを助けます。 – theArun

+1

Woops!私の間違い。この場合、lukeAによって提案された解決策は優れたものです。 – rflores

関連する問題