我不能够解决问题,当lm(sformula)
被执行时,它不会显示分配给该字符串sformula
。 我有一种感觉是一般的渠道 - 处理函数的参数,而不是特定的线性回归。
下面是这个问题,通过实施插图。 例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")
一般来讲有一个data
为参数lm
。 让我们做:
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)