R显示lm的P值结果作为矩阵

时间:2013-05-02 12:07:43

标签: r matrix lm

我有一个数据框,其中包含多个社会经济因素以及相应的观察。我想对所有这些进行lm-Analysis,然后形成一个新的矩阵(或数据框),其中包含每个变量组合的所有P值。

我的原始数据位于矩阵SFI.Matrix中,包含7行,每行12个条目。

我尝试了以下内容: 1.)构建结果矩阵 2.)为所有不同的组合运行lm 3.)将这些结果组合在结果矩阵中。

我的代码如下:

Levene.Tests.Results <- matrix(1, nr=7, nc=7)
rownames(Levene.Tests) <- colnames(Levene.Tests) <- colnames(SFI.Matrix)


for(i in 1:7) {
for(j in 1:7) {
Levene.Tests <- lm(SFI.Matrix[,i] ~ SFI.Matrix[,j])$p.value }}

我的问题是我得到的结果是所有NA的矩阵[n = 7,m = 7]。

我将不胜感激任何建议: - )

此外,我不确定这是否真的有效,因为数据条目是费率......你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

感谢@BenBolker的建议,我能够解决问题。确实,lm是错误的功能。正确的函数是test.cor,它带来了非常有用的结果:

Correlations<- matrix( nrow=7, ncol=7)
for(i in 1:7) {
for(j in 1:7) {
Correlations[i,j] <- cor.test( SFI.Matrix[,i], SFI.Matrix[,j] )$p.value
}
}

再次感谢Stackoverflow!