【发布时间】:2017-10-06 17:16:33
【问题描述】:
我想要一个类似my_lm的函数,示例如下:
library(rlang)
base_formula <- new_formula(lhs = quote(potato),
rhs = quote(Sepal.Width + Petal.Length))
my_lm <- function(response) {
lm(formula = update(old = base_formula, new = quote(response) ~ . ),
data = iris)
}
my_lm(response = Sepal.Length)
但是我遇到了以下错误:
Error in model.frame.default(formula = update(old = base_formula, new = enquo(response) ~ :
object is not a matrix
我怀疑我误用了rlang,但我似乎无法弄清楚引用、取消引用和公式化的哪种组合可以解决这个问题。
编辑:所需的输出就像我跑了一样:
lm(formula = Sepal.Length ~ Sepal.Width + Petal.Length,
数据 = 虹膜)
EDIT2:我还要澄清一下,我对使用rlang 通过update 解决此问题的解决方案比使用paste、gsub 和formula 的解决方案更感兴趣.
【问题讨论】:
-
my_lm 的预期输出是什么?
-
已澄清,感谢提问