R 皮尔逊相关

R 皮尔逊相关,r,pearson,R,Pearson,我有一个数据框,如下所示: x <- data.frame(Name=c("a", "b","c", "d", "e"),A=(1:5), B=(2:6), C=(7:11), D=c(1,1,1,1,1)) X1 X2 value 1 A A 1 2 B A 1 3 C A 1 4 D A NA 5 A B 1 6 B B 1 7 C B 1 8

我有一个数据框,如下所示:

x <- data.frame(Name=c("a", "b","c", "d", "e"),A=(1:5), B=(2:6), C=(7:11), D=c(1,1,1,1,1))
   X1 X2 value  
1   A  A     1   
2   B  A     1   
3   C  A     1  
4   D  A    NA  
5   A  B     1  
6   B  B     1  
7   C  B     1  
8   D  B    NA  
9   A  C     1  
10  B  C     1  
11  C  C     1  
12  D  C    NA  
13  A  D    NA  
14  B  D    NA  
15  C  D    NA  
16  D  D     1  
到这样的结果数据帧

a   b   0.989143436
a   c   0.963282002
a   d   0.93048421
a   e   0.89585579
b   c   0.9922798
b   d   0.974216034
b   e   0.951427811
c   d   0.994675789
c   e   0.982264673
d   e   0.996357429
请告知有效的方法

编辑

谢谢迈克尔的帮助

根据建议的代码,我发现结果如下:

x <- data.frame(Name=c("a", "b","c", "d", "e"),A=(1:5), B=(2:6), C=(7:11), D=c(1,1,1,1,1))
   X1 X2 value  
1   A  A     1   
2   B  A     1   
3   C  A     1  
4   D  A    NA  
5   A  B     1  
6   B  B     1  
7   C  B     1  
8   D  B    NA  
9   A  C     1  
10  B  C     1  
11  C  C     1  
12  D  C    NA  
13  A  D    NA  
14  B  D    NA  
15  C  D    NA  
16  D  D     1  
错误消息为“ 警告信息: 在cor(x[2:5],method=“pearson”):标准偏差为零


在我看来,我可能误用了代码,请您进一步指导如何进一步解决这个问题?谢谢。

您可以使用以下内容:

require(reshape)

y <- as.data.frame(t(x[2:5]), stringsAsFactors=FALSE)
colnames(y) <- x[[1]]

yrho <- melt(cor(y, method="pearson"))
subset(yrho, yrho$X1 != yrho$X2)

行标签可能是行标签,没有必要忽略它们。另外,OP需要的是行-行相关性,而不是列-列(但是一个
t
就可以了)。从技术上讲,我省略了数据帧的第一列(字符或因子向量,取决于您的设置),而不是行标签,但您对行-行相关性的理解非常正确。谢谢你指出这一点。