20

R のdata.tableパッケージの新規ユーザーです。「group by」コマンドで作成された新しい列に名前を付けようとしています。

> DT = data.table(x=rep(c("a","b"),c(2,3)),y=1:5) 
> DT
x y
1: a 1
2: a 2
3: b 3
4: b 4
5: b 5
> DT[,{z=sum(y);z+3},by=x]
x V1
1: a 6
2: b 15
  1. V1 (デフォルト) 列に直接名前を付けたいのですが (colnames を使用する必要はありません)、可能ですか?
  2. さらに、1 つのコマンドで複数のグループ化操作を実行することは可能ですか? その結果、次のようになります。

       x V1 V2
    1: a 6  something
    2: b 15 something
    

ありがとう

4

2 に答える 2

26
DT[,list(z=sum(y)+3,a=mean(y*z)),by=x]
   x  z  a
1: a  6  9
2: b 15 60

初心者なので、関数のヘルプ ページと およびビネットdata.tableも学習することをお勧めします。setnames?data.tabledata.table

于 2012-11-23T09:22:25.860 に答える