查找数据框的所有组中包含的值

时间:2017-01-13 14:00:09

标签: r

我有一个包含分组列Nr的数据框和一个字符值为GRUPPE的列 - 请参阅示例。组的数量可以根据用户的选择而变化。

这是一个简单的例子:

library(tibble)

Nr <- as.character(c(rep(1,5),rep(2,3),rep(3,4),rep(4,2)))
GRUPPE <- c(c("Cal","Gar","Köf","Fis","Ban"),
          c("Cal","Gar","Köf"),c("Cal","Gar","Ste","Blu"),
          c("Cal","Gar"))

df <- data_frame(Nr,GRUPPE)

我想要找到的是GRUPPE的值,它们在每个组中都是相同的(作为向量)。在此示例中,它是c("Cal","Gar")。组中值的顺序并不总是相同。

如果我只有两个组,我会使用%in%,但组的数量会有所不同。我也不需要很多行的解决方案。实际最大值约为。 10组,可能有10个值。

2 个答案:

答案 0 :(得分:2)

您可以使用Reduce

Reduce(`intersect`, split(df$GRUPPE, df$Nr))
#[1] "Cal" "Gar"

答案 1 :(得分:2)

我们也可以使用reduce

中的purrr
library(purrr)
split(df$GRUPPE, df$Nr) %>% 
               reduce(intersect)
#[1] "Cal" "Gar"