R data.table是否按分组删除行?

R data.table是否按分组删除行?,r,data.table,R,Data.table,我有一个data.table,其中包括一个displayDate字段,每个用户还有许多行,每个行都有不同的displayDate。每个用户都加入了服务,并在不同的时间点开始记录数据。对于每个用户,我只想找到第一周的数据,所以我想去掉不在给定用户第一周内的行。下面是我想做的,但这会产生一个错误: early_data = dt[displayDate <= min(displayDate) + 7, , by=user] early_data=dt[displayDate我们可能需要从逻辑

我有一个data.table,其中包括一个
displayDate
字段,每个用户还有许多行,每个行都有不同的displayDate。每个用户都加入了服务,并在不同的时间点开始记录数据。对于每个用户,我只想找到第一周的数据,所以我想去掉不在给定用户第一周内的行。下面是我想做的,但这会产生一个错误:

early_data = dt[displayDate <= min(displayDate) + 7, , by=user]

early_data=dt[displayDate我们可能需要从逻辑向量中获取行索引(
.I
),并使用该索引对行进行子集划分

 dt[dt[, .I[displayDate <= min(displayDate)+ 7], by =user]$V1]

您也可以这样做:
dt[,.SD[displayDate]对于记录,这个用例被描述为
 dt[dt[, .I[displayDate <= min(displayDate)+ 7], by =user]$V1]
set.seed(24)
dt <- data.table(displayDate = sample(seq(as.Date("2014-07-01"),
            length.out=20, by = "1 day")), user = rep(1:4, each=5))