我正在进行聚合:
iris$group <- sample(1:2, 150, T)
aggregate(Sepal.Length ~ Species + group , data = iris, FUN = function(x) c(m = mean(x), n = length(x)))
Run Code Online (Sandbox Code Playgroud)
现在我想group用变量替换:variable = "group"和聚合应该如上所述:
iris$group <- sample(1:2, 150, T)
variable = "group"
aggregate(Sepal.Length ~ Species + variable , data = iris, FUN = function(x) c(m = mean(x), n = length(x)))
Run Code Online (Sandbox Code Playgroud)
但然后发生错误.我尝试过eval,它没有帮助.
使用as.formula(sprintf("Sepal.Length ~ Species + `%s`", variable))得到替换成一个长期的公式.必须注意变量的输入是长度为1的字符向量.字符串模板中的反引号可以防止对表达式进行求值,variable = "factor(Sepal.Width)"如果希望这样做,则可以省略.
如果也可以variable = ~...作为参数,您可以使用modelr::add_predictors(Sepal.Length ~ Species, variable)组合公式.
| 归档时间: |
|
| 查看次数: |
85 次 |
| 最近记录: |