2017-03-17 40 views
0

我有一個數據框列表,我想對每個數據框應用單向ANOVA。這可能嗎?我試過使用匿名函數,但我不斷收到錯誤。每個數據幀由3列組成。第一個是主題名稱,第二個是因子級別,第三個是響應值。這裏有一些示例代碼來幫助解決方案。獲取列表中的子集的單向ANOVA表

df1 <- data.frame(name = rep("Sean", 9), variable = factor(c("a", "b", "c", "b", "a", "c", "a", "b", "c")), value = rnorm(9, 11)) 
df2 <- data.frame(name = rep("Laura", 9), variable = factor(c("a", "b", "c", "b", "a", "c", "a", "b", "c")), value = rnorm(9, 44)) 


my_list <- list(df1, df2) 

我明白,一個LM模型必須爲每個數據幀lm(value ~ variable, data = df被創建,然後我可以用方差分析功能的機型。但是,我無法完成這項工作。非常感謝。

回答

0

我想我已經設法弄清楚完成這件事的方法。我嘗試了以下給出了方差分析表的列表。

models <- lapply(my_list, function(l) { lm(l[[3]] ~ l[[2]], data = l) }) 
anova_tabs <- lapply(models, function(m) { anova(m) })