假设我将data.table按某一列分组,并计算每个组的值。然后,我要删除具有计数N < 2的组。有没有一种高效的,data.table的方法来做到这一点?
示例数据:
id | col1
-------------
1 | "A"
2 | "A"
3 | "B"
4 | "C"
5 | "C"现在:按col1分组并计数,删除属于count < 2组的行
示例输出:(删除了行3 )
id | col1
-------------
1 | "A"
2 | "A"
4 | "C"
5 | "C"我发现了一些类似的Subset by group with data.table,但我不想找到每个组的特定行,而是如果它们的聚合满足某一条件的话,就标识整个组。
谢谢
发布于 2020-05-22 15:44:00
values_2_keep <- DT[, .N, by = col1][N>=2, col1]
# Alternatively DT[rowid(col1)==2L, col1]
DT[col1 %in% values_2_keep]
id col1
1: 1 A
2: 2 A
3: 4 C
4: 5 C可复制的数据:
DT <- data.table(
id = 1:5,
col1 = c("A", "A", "B", "C", "C")
)https://stackoverflow.com/questions/61958691
复制相似问题