R,data.table:除了一列之外的多列分组

时间:2015-11-03 15:18:22

标签: r data.table

我有一个包含60列的数据框 第53列导致它复制,因为它有多个数字 我希望将第53列的最大数量和其他所有内容分组 我的代码在

之下
DT[,max(fee),by = DT[,-53]]

我收到以下错误

Error in `[.data.frame`(DT, , max(fee), by = DT[,  : 
unused argument (by = OPMS.shps[, -53])

我也尝试了data.table - group by all except one column概述的建议但是引发了相同的错误

任何人都可以看到问题所在吗?

1 个答案:

答案 0 :(得分:2)

我们需要在执行data.frame方法之前将data.table转换为data.table。即setDT(DT)

setDT(DT)[, max(fee), by=setdiff(names(DT), 'fee')]

数据

 DT <- data.frame(col1= c('a', 'a', 'b', 'b'),
           col2= rep(1:2, each=2), fee= c(1,5,3,2))