我有一个包含分组列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个值。
答案 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"