【问题标题】:Find overlaps in different datatables查找不同数据表中的重叠
【发布时间】:2016-08-24 13:04:27
【问题描述】:

我有大约 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 功能,但这仅适用于两个数据表。所以它没有用。

我希望有人可以提供帮助。 谢谢!

【问题讨论】:

  • 好问题。 但是,在发布这个问题之前你有没有尝试过?可以分享一下你的代码吗?
  • 欢迎来到 StackOverflow。这个问题很好地提出了一个明确的例子。不幸的是,在寻求帮助之前,您必须展示您迄今为止所做的尝试。

标签: r bioinformatics overlap


【解决方案1】:

我认为为此你想使用集合操作。

Set Operations

这应该可行:

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])

【讨论】:

  • 但是当我有超过 3 个数据框时,它会过于嵌套。可以循环吗?
  • 在这种情况下,您可能应该这样做:Reduce(function(x, y) merge(x, y, all=TRUE), list(df1, df2, df3)) - 从这个问题stackoverflow.com/questions/14096814/…
猜你喜欢
  • 1970-01-01
  • 2015-01-31
  • 1970-01-01
  • 2022-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-26
相关资源
最近更新 更多