У меня есть набор данных
auto <- read.csv("http://www-bcf.usc.edu/~gareth/ISL/Auto.csv")
, в котором я пытаюсь найти какие-либо существенные условия взаимодействия.Я хочу регрессии, которые включают только одно взаимодействие плюс составляющие его термины (т.е. цилиндры + ускорение + цилиндры: ускорение - это одна регрессия, которую я хочу проверить).
До сих пор, используя другие вопросы Stackoverflow, я смогчтобы придумать это:
results <- NULL
vars=colnames(auto)[-c(1,9)]
for(i in vars){
for(j in vars){
if(i ! = j){
factor=paste(i,j,sep='*')}
for(k in 1:20){
results[[k]]<-summary(lm(paste("mpg~", factor), data=auto)))
}}}
Тем не менее, это постоянно создает список, в котором хранится только последнее взаимодействие (т.е. коэффициенты для происхождения * год).Я также был бы в порядке, если бы код не содержал только уникальные значения, а также квадратные версии терминов.Однако, так как два из них (последние два в списке, происхождение и год) не заслуживают возведения в квадрат, и, поскольку я не знаю, как разделить длины для i и j и заставить их работать, я оставил это вне.
Что я должен сделать, чтобы получить результаты, которые я хочу получить из этого цикла?Должен ли я идти об этом по-другому?Я также попытался создать все взаимодействия, а затем добавить их в информационный фрейм и запустить цикл через него, но он, похоже, не является более эффективным / возможным.