如何使用 paste 和 as.formula 生成复杂的公式?
How do I use paste and as.formula to generate a complex formula?
我试图在循环中使用 R 输入方程,所以我使用 as.formula
和 paste.
最终结果应该是:
library(nlme)
glm(Sepal.Length ~ Sepal.Width + Petal.Length +Petal.Width,
family = gaussian(),data=iris)
无论这是否是正确的模型,请不要担心,这只是一个例子。我将这些变量分成 3 个部分
- Sepal.Length 和 Sepal.Width 是 1 个分量
- Petal.Length + Petal.Width 是 1 个分量
- family = gaussian(),data=iris) 是另一个组件
为什么这不起作用?
library(nlme)
glmi = glm(as.formula(paste("Sepal.Length ~ Sepal.Width+ ",
paste('Petal.Length +Petal.Width',
paste(',', 'family = gaussian(),data=iris')))))
glm()
的formula
参数只有这一点:
Sepal.Length ~ Sepal.Width + Petal.Length +Petal.Width
您的原始代码 - family = gaussian(), data=iris
是不同的 glm()
个参数,不属于其中。
根据你所拥有的,类似
glm(
as.formula(paste("Sepal.Length ~ Sepal.Width+ ", paste('Petal.Length +Petal.Width'))),
family = gaussian(),
data=iris
)
似乎与您正在尝试的相同。
我把不必要的第二个 paste()
留在了那里,因为它可能对应于您为问题简化的更复杂的逻辑。
我试图在循环中使用 R 输入方程,所以我使用 as.formula
和 paste.
最终结果应该是:
library(nlme)
glm(Sepal.Length ~ Sepal.Width + Petal.Length +Petal.Width,
family = gaussian(),data=iris)
无论这是否是正确的模型,请不要担心,这只是一个例子。我将这些变量分成 3 个部分
- Sepal.Length 和 Sepal.Width 是 1 个分量
- Petal.Length + Petal.Width 是 1 个分量
- family = gaussian(),data=iris) 是另一个组件
为什么这不起作用?
library(nlme)
glmi = glm(as.formula(paste("Sepal.Length ~ Sepal.Width+ ",
paste('Petal.Length +Petal.Width',
paste(',', 'family = gaussian(),data=iris')))))
glm()
的formula
参数只有这一点:
Sepal.Length ~ Sepal.Width + Petal.Length +Petal.Width
您的原始代码 - family = gaussian(), data=iris
是不同的 glm()
个参数,不属于其中。
根据你所拥有的,类似
glm(
as.formula(paste("Sepal.Length ~ Sepal.Width+ ", paste('Petal.Length +Petal.Width'))),
family = gaussian(),
data=iris
)
似乎与您正在尝试的相同。
我把不必要的第二个 paste()
留在了那里,因为它可能对应于您为问题简化的更复杂的逻辑。