【问题标题】:How to conditionally delete group-specific factor levels in R如何有条件地删除 R 中特定于组的因子水平
【发布时间】:2019-11-11 16:52:40
【问题描述】:

我有一个数据框,如果其关联索引的计数小于 2,我想在其中过滤掉月份值。

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 分别出现一次,因此这些行将被删除。

但是,如果我尝试使用 %in% 过滤 X3 和 X1 的数据,它们也会从其他 ID 值中删除。

删除应该只针对特定组。

【问题讨论】:

标签: r dplyr subset data-manipulation


【解决方案1】:

我们可以按列分组,filter

library(dplyr)
df %>% 
  group_by(ID, Month, Index) %>%
  filter(n() >1)

【讨论】:

    猜你喜欢
    • 2016-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 1970-01-01
    • 2023-01-09
    • 1970-01-01
    相关资源
    最近更新 更多