计算R数据帧的列之间的相关性

时间:2017-07-18 08:00:50

标签: r

我有一个包含2组4对配对观察的大型数据表,前几行如下:

cor.test

这些是来自两个不同RNA-seq分析管道'a'和'b'的基因表达计数:列a1和b1是通过两个不同的管道分析相同样品(1)的结果,与a2和a2相同b2等。每行(1-6)是不同的基因。我想找出是否存在显示特别差的成对相关性的特定基因,即第1列和第1列之间的整体相关性。 5,2和& 6,3& 7,4和4 8.我可以使用cor.test(c(480,770,601,953), c(469,750,588,944))$estimate cor 0.9997302 功能手动执行此操作,例如对于第一行中的数据:

for

但是对于我的生活,我无法弄清楚如何在数据表中以自动方式做到这一点(即返回相关系数的矢量,每行一个)。我可能会做某种if(itemData.Any(data => data.itemName == userInput)) 循环,但这似乎是一个丑陋的解决方案而不是“R方式”。

1 个答案:

答案 0 :(得分:1)

您可以使用apply返回行方式关联。 将MARGIN设置为1以将您的函数应用于每一行。 然后,您可以使用lapply仅打印列表的cor估计值。

这里是您的代码示例:

l <- apply(X = df, MARGIN = 1, FUN = function(x) cor.test(x[1:4], x[5:8]))
lapply(X = l, FUN = function(x) x$estimate)

要在列之间建立关联,请将MARGIN设置为2,并将子集更改为您要比较的列。

l <- apply(X = df, MARGIN = 2, FUN = function(x) cor.test(x[2], x[6]))
    lapply(X = l, FUN = function(x) x$estimate)