0
Ниже приведен рабочий сценарий R. Я хочу anova data frames dfa, а затем dfb - но функция aov только считывает первый фрейм данных. Я искал, но не нашел решение. Более важно, чтобы сценарий был легко читаемым, чем эффективность вычислений. Как я могу сделать aov для прокрутки кадров данных? Спасибо заранее.R петля anova и выбор имени кадра данных из списка
#two dummy data frames
Obs <- c(1,2,1,4,5,6) ;Treat <- c(1,1,1,2,2,2)
dfa <- data.frame(Obs=Obs, Treat=Treat)
Obs2 <- c(10,22,10,43,52,60)
dfb <- data.frame(Obs=Obs2, Treat=Treat)
Names <- c("dfa","dfb")
# Loop here but cannot get it to work with calling data frame names just repeats first analysis - dfb has quite different values
for(i in 1:2) {
print(summary(aov(Obs ~ Treat, data=as.data.frame(Names[i]))))
print(Names[i])
}
Кроме того, в вашем коде значения повторяются при создании объектов 'Obs',' Treat'. Результат может быть из вывода 'summary (aov (Obs ~ Treat))' Предположим, вы создали набор данных без создания векторных объектов 'dfa <- data.frame (Obs = c (1,2,1,4,5) , 6), Treat = c (1,1,1,2,2,2)); dfb <- data.frame (Obs = c (10,22,10,43,52,60), Treat = c (1,1,1,2,2,2)) 'После запуска вашего цикла,' Ошибка в eval (expr, envir, enc): объект 'Obs' не найден – akrun
Ничего себе, это было иначе! В любом случае работают как «функция», так и «lapply», а также меняются имена переменных на более уникальные имена. –
Извините, я забыл - большое спасибо! Теперь я попытаюсь использовать это знание. –