我正在尝试创建一个函数,该函数将参数作为自变量传递,而自变量保持不变。
我曾尝试使用{{}},但如果可以使用select包含,则会看到如下所示的问题。
test_func <- function(dataframe, dependent){
model <- tidy(lm({{ dependent }} ~ . - select(contains("x")), data = dataframe))
return(model)
}
test_func(datasets::anscombe, x1)
该函数应以单个模型作为函数(数据框,从属)传递。
使用reformulate()
。
fun <- function(dat, y) lm(reformulate(names(dat)[grep("^x", names(dat))], response=y), data=dat)
fun(datasets::anscombe, "y1")
# Call:
# lm(formula = reformulate(names(dat)[grep("^x", names(dat))],
# response = y), data = dat)
#
# Coefficients:
# (Intercept) x1 x2 x3 x4
# 4.33291 0.45073 NA NA -0.09873