如果我使用by
data.table 中的关键字进行分组,它总是将该by
列作为第一列返回。是否有一个标志/选项告诉它不要这样做?还是摆脱它的聪明方法?
特别是我想分组然后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]))
或类似的东西(两者都不起作用)