假设我有一个数据框(df),其中有两列,分别称为“高度”和“重量”。
假设我定义:
x = "height"
Run Code Online (Sandbox Code Playgroud)
如何在我的lm()函数中使用 x ?仅使用 x 都不起作用df[x]。
两种方式:
创建一个公式paste
x = "height"
lm(paste0(x, '~', 'weight'), df)
Run Code Online (Sandbox Code Playgroud)
或者使用reformulate
lm(reformulate("weight", x), df)
Run Code Online (Sandbox Code Playgroud)
使用mtcars数据集的可重现示例:
x = "Cyl"
lm(paste0(x, '~', 'mpg'), data = mtcars)
#Call:
#lm(formula = paste0(x, "~", "mpg"), data = mtcars)
#Coefficients:
#(Intercept) mpg
# 11.2607 -0.2525
Run Code Online (Sandbox Code Playgroud)
和同样的
lm(reformulate("mpg", x), mtcars)
Run Code Online (Sandbox Code Playgroud)