1

我是 R 语言和包的新手。为了以矩阵格式对大约 9000 个基因进行成对 pearson 相关分析,我按照此处链接中的信息在 R 中使用了 psych 包

但是,我在分析中遇到了一些使用心理手册无法解决的问题。

第一个:一般错误“cor(x,use = use,method = method)中的错误:'x'必须是数字”。当我删除元素名称并仅保留值时,它可以工作。我怎样才能包含标题?以下代码显示了上述错误

library("psych")
myData <- read.clipboard.tab(header = TRUE) 
corr.test(myData)

我的第二个疑问:过滤具有 pearson 相关 >=0.5 的对的最佳方法是什么?我的意思是我应该单独做还是R本身有什么方法?

编辑:

name    experiment1 experiment2 experiment3
gene1   -0.05814212 -0.3844461  1.4553193
gene2   -0.22045895 0.43413392  1.774345
gene3   1.4845127   -2.4423246  0.37565866
gene4   2.4195287   2.6537158   2.6640055
4

1 回答 1

1

你可以试试

library(psych)
myData1 <- myData[-1]
rownames(myData1) <- myData[,1]
Corrt <- corr.test(t(myData1))
Corrt$r[Corrt$r >= 0.5]

如果您需要保留结构,那么我们将值 < 0.5 更改为 NA

 is.na(Corrt$r) <- Corrt$r < 0.5
 Corrt$r
 #          gene1     gene2 gene3     gene4
 #gene1 1.0000000 0.8801186    NA        NA
 #gene2 0.8801186 1.0000000    NA 0.7761407
 #gene3        NA        NA     1        NA
 #gene4        NA 0.7761407    NA 1.0000000

数据

myData <- structure(list(name = c("gene1", "gene2", "gene3", "gene4"), 
experiment1 = c(-0.05814212, -0.22045895, 1.4845127, 2.4195287
), experiment2 = c(-0.3844461, 0.43413392, -2.4423246, 2.6537158
), experiment3 = c(1.4553193, 1.774345, 0.37565866, 2.6640055
)), .Names = c("name", "experiment1", "experiment2", "experiment3"
), class = "data.frame", row.names = c(NA, -4L))
于 2015-05-03T05:42:59.450 回答