我有一些关于data.table的问题/建议。
R) X = data.table(x=c("q","q","q","w","w","e"),y=1:6,z=10:15)
R) X[,list(sum(y)),by=list(x)]
x V1
1: q 6
2: w 9
3: e 6
我觉得不得不写太糟糕了
R) X[,list(y=sum(y)),by=list(x)]
x y
1: q 6
2: w 9
3: e 6
它应该默认保持相同的列名(即:y),其中函数只调用一列,这在大多数情况下将是一个巨大的收益,通常在金融中,因为我们通常将其视为加权和或上次或.. . => 有没有我可以设置为默认此行为的变量?
在进行选择时,我可能想对几列进行微积分,并对所有其他列应用另一个操作。我的意思是太糟糕了,当我想要这个时:
R) X = data.table(x=c("q","q","q","w","w","e"),y=1:6,z=10:15,t=20:25,u=30:35)
R) X
x y z t u
1: q 1 10 20 30
2: q 2 11 21 31
3: q 3 12 22 32
4: w 4 13 23 33
5: w 5 14 24 34
6: e 6 15 25 35
R) X[,list(y=sum(y),z=last(z),t=last(t),u=last(u)),by=list(x)] #LOOOOOOOOOOONGGGG
#EXPR
x y z t u
1: q 6 12 22 32
2: w 9 14 24 34
3: e 6 15 25 35
我不能像这样写...
R) X[,list(sum(y)),by=list(x),defaultFn=last] #defaultFn would be
applied to all remaniing columns
=> 我能以某种方式做到这一点(可能正在设置一个选项)吗?
谢谢