r - 在公式中显示字符串,而不是在 lm fit 中显示为变量

标签 r formula lm

我无法解决执行 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)

关于r - 在公式中显示字符串,而不是在 lm fit 中显示为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38558523/

相关文章:

r - 在面板数据中创建缺失的观察

r - 使用 ggplot2 修改点子集的形状

c# - 如何允许用户在 C# 应用程序中定义财务公式

使用 poly() 函数在 R 中进行回归

r - R中具有整数变量的非线性优化/编程

c - 为什么只有 1% 的时间我会得到不同的结果?

opencv - 使用 Brew 安装 OpenCV 永远不会完成

r - 具有分组/嵌套数据的 Bootstrap 重采样和整洁回归模型

R - 在每个数据框行上应用 lm

r - ggplot2:用直线连接极坐标中的点2