拆分分组取交集也可以,按x1
拆分,用Reduce(intersect)
取x2
的交集,然后筛选dat1
的行
dat1 = data.frame(
x1 = rep(1991:1993, each = 4),
x2 = c(
"a", "b", "c", "e",
"a", "b", "d", "f",
"a", "b", "c", "d"
),
x3 = 1:12
)
x2_intersect <- Reduce(
intersect,
dat1 |> split(~ x1) |> lapply(`[[`, 'x2')
)
dat1[dat1$x2 %in% x2_intersect, ]