从 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))
我是 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))