【发布时间】:2019-01-26 20:23:55
【问题描述】:
我想根据我在尝试识别多个数据帧中的相交值时遇到的问题寻求建议,但在我看来这有点复杂,我无法弄清楚如何使用正常的 intersect 函数来做到这一点.
我有几个数据框(最多 12 个),其中多列显示基因随时间的变化(例如 5 个时间点)以及其他基因如何与这种变化相关联(即其他基因也下降或上升以一种与数据中的其他基因相关联的方式)。该分析一次取一个基因,使用该基因作为参考,并针对它测试每个基因,以查看这些基因随时间变化的模式是否与第一个参考基因相关。这对每个单个基因都重复。所以以一个数据框为例,结果会如下所示。
第 1 列包含用作参考基因的基因,如果其他基因与该基因随时间的变化相关,则该值可能会出现多次。例如,如果基因 b、c 和 d 与基因 a 相关,则前两列显示如下:
a b
a c
a d
相同的基因 b 等等等等第四 20,000 次(基因数量)!希望这有意义吗?
b a
b c
b d
上面的分析是在多个不同的样本中进行的,所以我将获得多达 12 个数据帧,这些数据帧是不同的样本,每个数据帧的结果都如上详述。
目标(并提前道歉,我没有代码,因为我不完全确定从哪里开始!)因为我认为这可能最好通过为此创建一个函数来实现:For gene 'x' in column number 1,在每一个数据框中,我想看看第2列是否有重叠值。
以上面的例子,多个数据框可能是这样的:
df1
a b
a c
a d
df2
a d
a c
a e
df3
a d
a e
a f
因此,比较数据框,该函数将识别出基因 a,在所有数据框...基因 d.. 之间有一列值,因为基因 a 的所有数据框都是通用的。
同样,该函数将对每一个基因进行这种重叠分析...基因a、b、c..等
输出将是第 2 列中每个单个基因的重叠值,这些重叠值发生在跨数据帧的 a 列中的相同基因
我在贴头(分析)
Feature1 Feature2 delay pBefore pAfter corBefore
1 ENSMUSG00000001525 ENSMUSG00000026211 0 0.1093914984 0.1093914984 0.7161907
2 ENSMUSG00000001525 ENSMUSG00000055653 -1 0.0916478944 0.1047749696 0.7414240
3 ENSMUSG00000001525 ENSMUSG00000003038 0 0.0006810160 0.0006810160 0.9786161
加上特征 1 中的更多基因,每个特征 2 中的基因与特征 1 中的基因相关
此数据框将是一个样本,而我将对其他样本有单独的结果
我非常感谢有关如何创建代码以实现此目标的任何提示。此外,很高兴能够指定我也希望看到只包含的基因重叠,例如 pBefore >= 0.8,或者延迟列等相同......
非常感谢您花时间阅读本文!
【问题讨论】:
标签: r dataframe compare intersection overlap