【发布时间】:2013-09-05 20:13:42
【问题描述】:
我有面板数据(主题/年份),我希望只保留每年出现最多次数的主题。数据集很大,所以我使用的是 data.table 包。有没有比我在下面尝试过的更优雅的解决方案?
library(data.table)
DT <- data.table(SUBJECT=c(rep('John',3), rep('Paul',2),
rep('George',3), rep('Ringo',2),
rep('John',2), rep('Paul',4),
rep('George',2), rep('Ringo',4)),
YEAR=c(rep(2011,10), rep(2012,12)),
HEIGHT=rnorm(22),
WEIGHT=rnorm(22))
DT
DT[, COUNT := .N, by='SUBJECT,YEAR']
DT[, MAXCOUNT := max(COUNT), by='YEAR']
DT <- DT[COUNT==MAXCOUNT]
DT <- DT[, c('COUNT','MAXCOUNT') := NULL]
DT
【问题讨论】:
-
所以基本上你想要一个data.table,其中包含每个披头士乐队数据最丰富年份的所有数据?
-
想一想,如果
data.table在i表达式中具有与在j表达式中相同的by功能,那就太好了。
标签: r count data.table