在R中输出N和Pearson相关的显着性

时间:2014-05-07 06:16:46

标签: r pearson

我有400个商店部门,我在所有部门之间运行(Pearson)相关性。如何输出'N'(个案数)和显着性水平(p值)?

我正在使用cor功能。这是我目前正常运行的代码:

numprod <- ncol(data) - 2; 
matrix <- as.matrix(data[ ,2:numprod]);
AllChannels <- cbind(matrix(nrow = numprod-1,"All channels"),cor(matrix, use="all.obs", method="pearson"));

在SPSS中,当您运行相关时,它会输出相关系数N和显着性。这是我想要的结果。

全部谢谢!

卢卡斯

1 个答案:

答案 0 :(得分:0)

如果它只是其中一个向量的长度,那么使用length。如果你想要相关系数的推理计算等于0,那么使用cor.test(正如?cor的帮助页面告诉你的那样。)如果它是测试的自由度数,那么看看更多密切关注?cor.test

> cor.test(1:10,2:11)

    Pearson's product-moment correlation

data:  1:10 and 2:11 
t = 134217728, df = 8, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0 
95 percent confidence interval:
 1 1 
sample estimates:
cor 
  1 

cor.test的结果将是一个列表,因此使用cbind不会有用。 Hmisc包有rcorr

install.packages("Hmisc")
library(Hmisc)
x <- c(-2, -1, 0, 1, 2)
y <- c(4,   1, 0, 1, 4)
z <- c(1,   2, 3, 4, NA)
v <- c(1,   2, 3, 4, 5)
rcorr(cbind(x,y,z,v))
#   ========   Returns a list with three elements:
> rcorr(cbind(x,y,z,v))
  x     y     z v
x 1  0.00  1.00 1
y 0  1.00 -0.75 0
z 1 -0.75  1.00 1
v 1  0.00  1.00 1

n
  x y z v
x 5 5 4 5
y 5 5 4 5
z 4 4 5 4
v 5 5 4 5

P
  x      y      z      v     
x        1.0000 0.0000 0.0000
y 1.0000        0.2546 1.0000
z 0.0000 0.2546        0.0000
v 0.0000 1.0000 0.0000