【发布时间】:2020-06-07 15:57:57
【问题描述】:
我希望在 R 中运行多个方差分析,所以我希望编写一个函数。
df = iris
run_anova <- function(var1,var2,df) {
fit = aov(var1 ~ var1 , df)
return(fit)
}
在鸢尾花数据集中,列名是“Sepal.Length”“Sepal.Width”“Petal.Length”“Petal.Width”“Species”
假设我想在方程中使用这些列,如何将它们传递给 run_anova 函数?我尝试将它们作为字符串传递
run_anova("Sepal.Width", "Petal.Length", df)
这不起作用,因为出现此错误: "在 storage.mode(v)
run_anova(Sepal.Width, Petal.Length, df)
当我不带引号将它们传入时,“未找到”。如何将 df 列的这些名称传递给函数?
非常感谢您的帮助。
【问题讨论】:
-
将尝试从变量名称字符串构建公式:
fit = aov(as.formula(paste(var1, "~", var2)) , df) -
或简称
reformulate(var2, var1)