我想寫使用tidyeval(非標準評價)。採用基礎R NSE圍繞「LM」的功能,它的工作原理:編程使用「LM」功能tidyeval
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
和rlang
來編寫這個函數。我認爲substitute
應該被替換爲enquo
,並且由!!
來評估。 Hadley的Adv-R中有一些提示,但我無法弄清楚。
爲什麼要這樣做? – Thomas
爲了用dplyr函數編程,它對usw tidyeval/rlang很有用,我只想使用一個系統。 Beides,我想向一些Studenten Nse解釋,我認爲只使用一個系統更容易,更一致。 –
鑑於lm()不使用與dplyr相同的NSE形式,我不認爲用rlang打它會有幫助。 – Thomas