lm 在 for 循环中没有存储 p 值? (在R)

lm in for loop no p-values stored? (in R)

我正在尝试拟合回归模型来解释独裁者游戏中的捐赠。由于我有很多变量,我想使用 'for' 循环自动执行该过程。现在我从单变量模型开始。 当我 print/summarise 拟合 fit[1:24] 时,只显示截距和系数。似乎没有存储 p 值?

predictor<-0
fit<-0
dictatorgame<-mydata$dictatorgame
sumres<-0
pVal<-0

for(i in 1:24) #24 predictor variables stored in column 1-24 in mydata
{
predictor<-mydata[i]
unlist(predictor)
fit[i]<-lm(dictatorgame~unlist(predictor))
}

我尝试了在 SO 上找到的两种不同的解决方案,它们似乎都认为对象是原子的:

sumres[i]=summary(fit[i])
pf(sumres[i]$fstatistic[1L], sumres[i]$fstatistic[2L],sumres[i]$fstatistic[3L], lower.tail = FALSE)

pVal[i] <- (fit[i])$coefficients[,4]

但总是收到错误消息 $ operator is invalid for atomic vectors

我生成了一些数据来执行多元回归。最后,您可以找到输出列表的前三个元素。是你想要的吗?

dependent   <- rnorm(1000) 
independent <- matrix(rnorm(10*1000), ncol = 10)

result <- list()
for (i in 1:10){
  result[[i]] <- lm(dependent ~ independent[ ,i])
}

lapply(result, function(x) summary(x)$coefficients )

[[1]]
                    Estimate Std. Error    t value  Pr(>|t|)
(Intercept)      -0.02890665 0.03167108 -0.9127144 0.3616132
independent[, i] -0.04605868 0.03138201 -1.4676776 0.1425069

[[2]]
                    Estimate Std. Error    t value  Pr(>|t|)
(Intercept)      -0.03142412 0.03161656 -0.9939134 0.3205060
independent[, i] -0.03874678 0.03251463 -1.1916723 0.2336731

[[3]]
                    Estimate Std. Error    t value  Pr(>|t|)
(Intercept)      -0.03208370 0.03162904 -1.0143749 0.3106497
independent[, i]  0.02089094 0.03189098  0.6550737 0.5125713