またはquantile()
のように複数の行を返す関数を使用してdata.tableに集計を行いたいとします。これまでのやり方は次のとおりです。集計後の結果のdata.table列の名前付けR
library(data.table)
x = as.data.table(iris)
x[, as.list(c(summary(Sepal.Length), summary(Sepal.Width))), by = Species]
これは機能しますが、結果として任意の列名になります。長さが12のベクトルmyColumnNames
がある場合、次の行にsetnamesを使用せずに、このベクトルの後に新しい列の名前を設定するにはどうすればよいですか?
私の "明らかな"試みでは、x[, myColumnNames = as.list(c(summary(Sepal.Length), summary(Sepal.Width))), by = Species]
が失敗しました。何か案は?
どのように 'のx [、setNamesについて(as.list(C(サマリー(Sepal.Length)、要約(Sepal.Width)))、myColumnNames)=種によって、あります] ' – akrun
@akrunは' data.table :: setnames'で名前を設定することができます。例えば、 'setnames(y、2:13、myColumnNames)'のように、 'y'はあなたの行の結果です。 – nicola
@akrunあなたのソリューションは完璧に動作します、ありがとう!投稿してください、私は正しいasnwerとしてそれを受け入れることができます。 @nicola '2:13'のようなインデックスで遊ぶのを避けるために、コマンドの後に' setnames() 'を避けたかった。 – GerasimosPanagiotakopoulos