【问题标题】:How can I filter one column based on multiple groups in another column in R?如何根据 R 中另一列中的多个组过滤一列?
【发布时间】:2022-11-03 23:39:36
【问题描述】:

我在 A 列中有属于 2 个组 A 和 B 的值。我只想过滤 ID 中在 Group 中有多个分组的值。例如。在这里,值 1 将符合我想要选择的条件。

关于我将如何做这件事的任何想法?

ID Group
1 A
1 B
1 A
2 A
2 A
2 A
3 B
3 B
3 B

我尝试使用 dplyr:

df %>%
filter(Group == "A" & Group == "B") 

但这不会返回任何输出,因为没有值在同一行中同时具有 A 和 B。

【问题讨论】:

    标签: r filter tidyverse


    【解决方案1】:

    我们可以按“ID”分组并仅选择那些具有多个不同元素的“组”(n_distinct

    library(dplyr)
    df %>%
        group_by(ID) %>%
        filter(n_distinct(Group) > 1) %>%
        ungroup
    

    数据

    df <- structure(list(ID = c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L), Group = c("A", 
    "B", "A", "A", "A", "A", "B", "B", "B")), class = "data.frame", row.names = c(NA, 
    -9L))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-14
      • 1970-01-01
      • 1970-01-01
      • 2020-12-08
      • 1970-01-01
      • 1970-01-01
      • 2019-01-17
      • 1970-01-01
      相关资源
      最近更新 更多