小编hhh*_*hhh的帖子

data.table中的"by"(分组) - 我错过了什么?

我正在处理一个大的data.table并使用'by'来'分组'3个变量.

我的data.table是d并且具有键"ma"(10位整数但我在下面缩短了它).

但是设置by="ma,year,month"(对我来说,更直观的分组语句)并没有给出我想要的东西.例如,ma = 284有2011年11月的3个条目,或者ma = 672有2011年12月的2个条目.

> d[,list(n=length(trx_num)),by=list(ma,year,month)]
      ma year month n
  1: 284 2011    12 3
  2: 284 2012     1 1
  3: 284 2011    11 5
  4: 284 2011    11 1
  5: 284 2011    11 2
 ---
5782971: 672 2012     7 1
5782972: 672 2011    12 1
5782973: 672 2012     2 1
5782974: 672 2011    12 1
5782975: 672 2012     1 1
Run Code Online (Sandbox Code Playgroud)

但是,反转'by'顺序会产生所需的结果.

> d[,list(n=length(trx_num)),by=list(month,year,ma)]
     month year ma  n
  1:    12 2011 284  3 …
Run Code Online (Sandbox Code Playgroud)

r data.table

13
推荐指数
1
解决办法
456
查看次数

标签 统计

data.table ×1

r ×1