如何在R中的多个数据帧中选择公共值?

时间:2018-03-14 20:46:01

标签: r

我是R.的新手。我有3个数据框

a1
1 p53
2 NFKB
3 P73
4 P21
5 PTEN

a2
1 p21
2 p53
3 ERGIC3
4 MAP3K3
5 PTEN

a3
1 PTEN
2 MAP3K3
3 ERGIC3
4 AURKA
5 p53

我得到一个表作为输出,只显示像p53和PTEN这样的常见值,这在三个数据帧中都很常见。我应该如何在R?

中编写代码

1 个答案:

答案 0 :(得分:-2)

您可以在一行中使用Reduceintersect

我认为a1a2a3实际上是data.frame s(而不是vector s)。然后做:

common_elements <- Reduce(intersect, list(a1[, 1], a2[, 1], a3[, 1]));
common_elements;
#[1] "p53"  "PTEN"

如果改为a1a2a3是向量,那么

common_elements <- Reduce(intersect, list(a1, a2, a3));
common_elements;

样本数据

a1 <- read.table(text =
    "a1
1 p53
2 NFKB
3 P73
4 P21
5 PTEN", header = T)

a2 <- read.table(text = 
    "a2
1 p21
2 p53
3 ERGIC3
4 MAP3K3
5 PTEN", header = T)

a3 <- read.table(text = 
    "a3
1 PTEN
2 MAP3K3
3 ERGIC3
4 AURKA
5 p53", header = T)