使用函数参数并将其传递给 lm 公式
Using a function parameter and passing it in to lm formula
我正在尝试创建一个函数,将参数作为因变量传入,而自变量保持不变。
我曾尝试使用 {{}},但如果 select 包含可能,则问题如下所示。
test_func <- function(dataframe, dependent){
model <- tidy(lm({{ dependent }} ~ . - select(contains("x")), data = dataframe))
return(model)
}
test_func(datasets::anscombe, x1)
该函数应作为具有单个模型的函数(数据帧,从属)传递。
使用reformulate()
.
f <- function(d, y) lm(reformulate(names(d)[grep("x", names(d))], response=y), data=d)
f(datasets::anscombe, "y1")
# Call:
# lm(formula = reformulate(names(d)[grep("x", names(d))], response = y),
# data = d)
#
# Coefficients:
# (Intercept) x1 x2 x3 x4
# 4.33291 0.45073 NA NA -0.09873
我正在尝试创建一个函数,将参数作为因变量传入,而自变量保持不变。
我曾尝试使用 {{}},但如果 select 包含可能,则问题如下所示。
test_func <- function(dataframe, dependent){
model <- tidy(lm({{ dependent }} ~ . - select(contains("x")), data = dataframe))
return(model)
}
test_func(datasets::anscombe, x1)
该函数应作为具有单个模型的函数(数据帧,从属)传递。
使用reformulate()
.
f <- function(d, y) lm(reformulate(names(d)[grep("x", names(d))], response=y), data=d)
f(datasets::anscombe, "y1")
# Call:
# lm(formula = reformulate(names(d)[grep("x", names(d))], response = y),
# data = d)
#
# Coefficients:
# (Intercept) x1 x2 x3 x4
# 4.33291 0.45073 NA NA -0.09873