从 R 中的 psyche 包中过滤相关数据

Filtering correlation data from psyche package in R

我是 R 语言的新手,packages.To 对矩阵格式的大约 9000 个基因进行成对 pearson 相关分析,我按照 link here 中的信息在 R 中使用了 psych 包

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

第一个:一般性错误 "Error in cor(x, use = use, method = method) : 'x' must be numeric"。当我删除元素名称并仅保留值时,它起作用了。我怎样才能包括 header 呢?下面的代码显示了上面的错误

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

我的第二个疑问:过滤具有 >=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

你可以试试

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