在“group by”中设置列名称操作与data.table [英] Setting column name in "group by" operation with data.table

查看:111
本文介绍了在“group by”中设置列名称操作与data.table的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是R的 data.table 包的新用户。
我试图给一个由group by命令创建的新列命名。

  DT = data.table(x = rep(c(a,b),c(2,3)),y = 1:5)
& DT
xy
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(默认)列(不必使用列名) ?


  2. 此外,可以在一个命令中执行几个group by操作,这将导致类似:

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


感谢

解决方案

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

因为你是的新用户。表,我建议您还学习 setnames 函数的帮助页面以及?data.table data.table 小插曲。


I am a new user of the data.table package in R. I am trying to give a name to the new column created by a "group by" command

> 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. I would like to name the V1 (default) column directly (not having to use colnames), is it possible?
  2. Additionally, is it possible to perform several group by operations in one command, that would result in something like:

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

Thanks

解决方案

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

Since you are new to data.table, I recommend that you also study the help page of the setnames function as well as ?data.table and the data.table vignettes.

这篇关于在“group by”中设置列名称操作与data.table的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆