我有大约30个数据表。现在我想在一些表的第一列中找到重叠并提取它们。结果应该是一个表,其中第一列中的重叠来自两个以上的数据表。这是一个例子:
表1:
Gen Estimate Std. Error p-Wert
1007_s_at -0.159699 0.07834 0.04265
1053_at -0.174647 0.064535 0.0098976
121_at 0.1765678 0.05116854 0.0000657
表2:
Gen Estimate Std. Error p-Wert
1494_f_at 0.2222467 0.0553653 0.0075838
121_at 0.873683 0.00898737 0.0088378
1316_at 0.098764 0.098456 0.048899
1007_s_at 0.89723 0.5675389 0.00007865
表3:
Gen Estimate Std.Error p-Wert
1007_s_at 0.0864567 0.8931278 0.005542
121_at 0.2378590 0.0236586 0.00005667
1494_f_at 0.4597023 0.9875357 0.0091234
结果应为:
Gen
1007_s_at
121_at
我尝试了 foverlaps 功能,但这只适用于两个数据表。所以它没有用。
我希望有人可以提供帮助。 谢谢!
答案 0 :(得分:1)
我认为你想要使用set操作。
这应该有效:
dat1 <- data.frame(gen = c("aaaaa", "1494_f_at", "1111", "!!!!"), stringsAsFactors = FALSE)
dat2 <- data.frame(gen = c("1494_f_at", "cccccc", "!!!!","999"), stringsAsFactors = FALSE)
dat3 <- data.frame(gen = c( "!!!!","1494_f_at", "999", "dddddd"), stringsAsFactors = FALSE)
intersect(intersect(dat1[,1], dat2[,1]), dat3[,1])