簡體   English   中英

如何有條件地刪除 R 中的組特定因子水平

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM