如果我通过在data.table中使用by
关键字进行分组,它总是返回by
列作为第一列。有没有一个标志/选项告诉它不要这样做?或者摆脱它的一个聪明的方式?有没有办法不返回'by`列作为data.table分组中的第一列
我特别想组,然后rbindlist
我原来的表,所以逸岸的问题也可以说是 - “如何阻止它重新排序的列”
例如:
DT = data.table(I = as.numeric(1:6), N = rnorm(6), L = rep(c("a", "b", "c"), 2))
DT[, list(I = mean(I), N = mean(N)), by= L]
DT
给出:
> DT[, list(I = mean(I), N = mean(N)), by= L]
L I N
1: a 2.5 0.4291802
2: b 3.5 0.6669517
3: c 4.5 -0.6471886
> DT
I N L
1: 1 1.8460998 a
2: 2 0.7093438 b
3: 3 -1.7991193 c
4: 4 -0.9877394 a
5: 5 0.6245596 b
6: 6 0.5047421 c
至于rbindlist
请求进入,这将是很好能够做到这一点:
DT = rbindlist(list(DT, DT[, list(I = mean(I), N = mean(N)), by= L]))
或许
DT = rbindlist(list(DT, DT[, list(I = mean(I), N = mean(N), L), by= L]))
或类似的东西(两者都没有工作)
(+1)我真的很喜欢列以相同的顺序返回! – Arun 2013-02-23 11:32:03
Carone,@Arun,ok +1现在已添加到[FR#1757](https://r-forge.r-project.org/tracker/?group_id=240&atid=978&func=detail&aid=1757)。 – 2013-02-25 09:10:08
@MatthewDowle,感谢您将此功能添加到待办事项列表。 – Arun 2013-02-25 11:22:58