0
下面是一個可用的R腳本。我想要anova數據幀dfa然後dfb - 但 aov函數只讀取第一個數據幀。我已經搜索,但沒有找到解決方案。腳本比計算效率更容易閱讀。 如何讓aov循環訪問數據框? 在此先感謝。R looping 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))'運行循環時,'Error in eval(expr,envir,enclos):找不到對象'Obs' – akrun 2015-02-10 12:38:56
哇,這是不同的!無論如何,'函數'和'lapply'都起作用,並且我還將變量名稱更改爲更加獨特的名稱。 – 2015-02-10 14:11:27
對不起 - 我忘了 - 非常感謝!現在我將嘗試使用這些知識。 – 2015-02-10 14:18:54