tidyeval (非標準評価) を使用して "lm" の周りに関数を記述しようとしています。ベース R NSE を使用すると、次のように動作します。
lm_poly_raw <- function(df, y, x, degree = 1, ...){
lm_formula <-
substitute(expr = y ~ poly(x, degree, raw = TRUE),
env = list(y = substitute(y),
x = substitute(x),
degree = degree))
eval(lm(lm_formula, data = df, ...))
}
lm_poly_raw(mtcars, hp, mpg, degree = 2)
tidyeval
ただし、 andを使用してこの関数を記述する方法がわかりませんでしたrlang
。substitute
beenquo
と eval をに置き換える必要があると思い!!
ます。Hadley の Adv-R にいくつかヒントがありますが、私にはわかりませんでした。