在公式中显示字符串而不是 lm fit 中的变量
Showing string in formula and not as variable in lm fit
我无法解决执行 lm(sformula)
时不显示分配给 sformula
的字符串的问题。我觉得这是 R 处理函数参数的通用方式,而不是特定于线性回归的方式。
下面通过例子说明问题。示例 1,具有 不需要的 输出 lm(formula = sformula)
。示例 2 是我想要的输出,即 lm(formula = "y~x")
.
x <- 1:10
y <- x * runif(10)
sformula <- "y~x"
## Example: 1
lm(sformula)
## Call:
## lm(formula = sformula)
## Example: 2
lm("y~x")
## Call:
## lm(formula = "y~x")
eval(call("lm", sformula))
怎么样?
lm(sformula)
#Call:
#lm(formula = sformula)
eval(call("lm", sformula))
#Call:
#lm(formula = "y~x")
一般来说,lm
有一个 data
参数。让我们做:
mydata <- data.frame(y = y, x = x)
eval(call("lm", sformula, quote(mydata)))
#Call:
#lm(formula = "y~x", data = mydata)
上面的call()
+eval()
组合可以替换成do.call()
:
do.call("lm", list(formula = sformula))
#Call:
#lm(formula = "y~x")
do.call("lm", list(formula = sformula, data = quote(mydata)))
#Call:
#lm(formula = "y~x", data = mydata)
我无法解决执行 lm(sformula)
时不显示分配给 sformula
的字符串的问题。我觉得这是 R 处理函数参数的通用方式,而不是特定于线性回归的方式。
下面通过例子说明问题。示例 1,具有 不需要的 输出 lm(formula = sformula)
。示例 2 是我想要的输出,即 lm(formula = "y~x")
.
x <- 1:10
y <- x * runif(10)
sformula <- "y~x"
## Example: 1
lm(sformula)
## Call:
## lm(formula = sformula)
## Example: 2
lm("y~x")
## Call:
## lm(formula = "y~x")
eval(call("lm", sformula))
怎么样?
lm(sformula)
#Call:
#lm(formula = sformula)
eval(call("lm", sformula))
#Call:
#lm(formula = "y~x")
一般来说,lm
有一个 data
参数。让我们做:
mydata <- data.frame(y = y, x = x)
eval(call("lm", sformula, quote(mydata)))
#Call:
#lm(formula = "y~x", data = mydata)
上面的call()
+eval()
组合可以替换成do.call()
:
do.call("lm", list(formula = sformula))
#Call:
#lm(formula = "y~x")
do.call("lm", list(formula = sformula, data = quote(mydata)))
#Call:
#lm(formula = "y~x", data = mydata)