Moh*_*ere 1 loops r matrix correlation psych
我有两个相同维度(p 和 e)的矩阵,我想在同名的列之间进行 spearman 相关。我想在矩阵 (M) 中输出对相关性
我使用了corr.test()
库 Psych 中的函数,这是我所做的:
library(psych)
M <- data.frame(matrix(ncol=3,nrow=ncol(p)))
M[,1] <- as.character()
G <- colnames(p)
for(rs in 1:ncol(p){
M[rs,1] <- G[rs]
cor <- corr.test(p[,rs],e[,rs],method="spearman",adjust="none")
M[rs,2] <- cor$r
M[rs,3] <- cor$p
}
Run Code Online (Sandbox Code Playgroud)
但我收到一条错误消息:
Error in 1:ncol(y) : argument of length 0
Run Code Online (Sandbox Code Playgroud)
你能告诉我有什么问题吗?或建议另一种方法?
不需要所有这些循环和索引等:
# test data
p <- matrix(data = rnorm(100),nrow = 10)
e <- matrix(data = rnorm(100),nrow = 10)
cor <- corr.test(p, e, method="spearman", adjust="none")
data.frame(name=colnames(p), r=diag(cor$r), p=diag(cor$p))
# name r p
#a a 0.36969697 0.2930501
#b b 0.16363636 0.6514773
#c c -0.15151515 0.6760652
# etc etc
Run Code Online (Sandbox Code Playgroud)
如果矩阵的名称不匹配,则match
它们:
cor <- corr.test(p, e[,match(colnames(p),colnames(e))], method="spearman", adjust="none")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1275 次 |
最近记录: |