我是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
此外,是否可以在一个命令中执行多个操作组,这将导致类似:
x V1 V2
1: a 6 something
2: b 15 something
由于
答案 0 :(得分:23)
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.table
和data.table
小插曲。
答案 1 :(得分:0)
为简洁起见,您现在可以使用.()
代替list()
DT[, .(z=sum(y)+3, a=mean(y*z)), by=x]