我正在处理一个大的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)