我有这样的数据:
X <- data.frame(fac_1 = c("A", "B", "C", "X", "Y"), fac_2 = c("B", "X", "P", "Q", "C"), fac_3 = c("C", "P", "Q", "T", "U"))
fac_1 fac_2 fac_3
A B C
B X P
C P Q
X Q T
Y C U
我只想要那些常见的字母
(1)fac_1和fac_2之间(如B,C,X)和
(2)fac_1,fac_2和fac_3之间共有的所有因素(仅限C)
答案 0 :(得分:2)
您可以使用intersect
intersect(intersect(X$fac_1, X$fac_2), X$fac_3)
#[1] "C"
intersect(X$fac_1, X$fac_2)
#[1] "B" "C" "X"
或者,可以按照@docendo discimus在评论部分所描述的那样使用函数Reduce
。
Reduce(intersect, X)
#[1] "C"