【问题标题】:Subset groups that have each observation from another column具有来自另一列的每个观察值的子集组
【发布时间】:2022-11-04 02:46:58
【问题描述】:

我的数据如下:

group observation
A     red
A     blue
A     green
B     red
B     red
B     green
C     blue
C     red
C     green

我想对每个观察至少有一个的组进行子集化。我想要的输出如下:

group observation 
A     red
A     blue
A     green
C     blue
C     red
C     green

【问题讨论】:

    标签: r


    【解决方案1】:

    我们可以按'group'列分组,检查整个数据中的allunique'observation'元素是否是%in%分组行中的'observation'到filter那些'group's

    library(dplyr)
    df1 %>%
        group_by(group) %>%
        filter(all(unique(df1$observation) %in% observation)) %>%
        ungroup
    

    -输出

    # A tibble: 6 × 2
      group observation
      <chr> <chr>      
    1 A     red        
    2 A     blue       
    3 A     green      
    4 C     blue       
    5 C     red        
    6 C     green    
    

    数据

    df1 <- structure(list(group = c("A", "A", "A", "B", "B", "B", "C", "C", 
    "C"), observation = c("red", "blue", "green", "red", "red", "green", 
    "blue", "red", "green")), class = "data.frame", row.names = c(NA, 
    -9L))
    

    【讨论】:

      猜你喜欢
      • 2013-12-21
      • 1970-01-01
      • 2019-10-11
      • 1970-01-01
      • 1970-01-01
      • 2018-01-10
      • 1970-01-01
      • 1970-01-01
      • 2014-05-03
      相关资源
      最近更新 更多