[英]How to conditionally delete group-specific factor levels in R
我有一個數據框,如果其關聯索引的計數 < 2,我想在其中過濾掉 Month 值。
ID = c(rep("A", 5), rep("B", 5))
Month = c(
1,
1,
2,
2,
3,
1,
2,
2,
3,
3
)
Index = c("X1", "X1", "X2", "X2", "X3", "X1", "X2", "X2", "X2", "X3")
df = data.frame(ID, Month, Index, stringsAsFactors = FALSE)
df$Month <- as.factor(df$Month)
df
在這里,X3 和 X1 只針對 A 和 B 分別出現一次,因此這些行將被刪除。
但是,如果我嘗試使用 X3 和 X1 的%in%
過濾我的數據,它們也會從其他 ID 值中刪除。
刪除應該只針對特定組。
我們可以按列分組並filter
library(dplyr)
df %>%
group_by(ID, Month, Index) %>%
filter(n() >1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.