我有一个数据框,其中包含多个社会经济因素以及相应的观察。我想对所有这些进行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]。
我将不胜感激任何建议: - )
此外,我不确定这是否真的有效,因为数据条目是费率......你能帮我解决这个问题吗?
答案 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!