Я пытаюсь подобрать модель регрессии, чтобы объяснить пожертвования в диктаторских играх. Поскольку у меня много переменных, я хочу автоматизировать процесс с помощью цикла 'for'. Пока я начинаю с одномерных моделей. Когда я печатаю/суммирую подгонки fit[1:24]
, отображаются только перехваты и коэффициенты. Похоже, что значения p не сохраняются?lm in for loop не сохранены p-значения? (in R)
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
.
'предиктор <-mydata [i]' кажется неправильным. Если 'mydata' является data.frame, то это должно быть' preddor <-mydata [, i] '. – Alex
Да, это более чистое решение для того, что я сделал ('unlist (predoror)'). После того, как я изменил это в своем коде, я все еще не вижу p-значений (перехваты и коэффициенты кажутся правильными, хотя). – YaeVo