首页 > 解决方案 > 为 R 中的整洁数据查找组间共有的变量

问题描述

我正在寻找基于整洁的数据集在 R 中跨组的常见案例。

我可以拆分数据集然后加入它们,或者使用 Reduce,但这似乎很费力,我确信必须有一种方法可以轻松地为整洁的数据执行此操作,可能使用dplyrand group_by().

这是一个例子:

data <- data.frame(case = c('A', 'B', 'C', 'D', 'B', 'C', 'D', 'E'), 
                   var = c(rep(1,4), rep(2, 4)))

  case var
1    A   1
2    B   1
3    C   1
4    D   1
5    B   2
6    C   2
7    D   2
8    E   2

我想要的是跨变量常见的情况:'B', 'C', 'D'. 我认为这应该很容易,但找不到答案。

标签: r

解决方案


按案例分组,然后为那些出现正确次数的案例抓取第一行。

library(dplyr)
data %>% 
  group_by(case) %>%
  slice(which(n_distinct(var) == n_distinct(.$var))[1])

推荐阅读