Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用paste和as.formula生成复杂公式?_R_Model_Paste - Fatal编程技术网

如何使用paste和as.formula生成复杂公式?

如何使用paste和as.formula生成复杂公式?,r,model,paste,R,Model,Paste,我试图在循环中使用R输入一个方程,因此我使用as.formula和paste. 最终结果应该是: library(nlme) glm(Sepal.Length ~ Sepal.Width + Petal.Length +Petal.Width, family = gaussian(),data=iris) 不管这是不是正确的模式,不要担心,它只是一个例子。我把这些变量分成3个部分 萼片长度和萼片宽度为1个组分 花瓣。长度+花瓣。宽度为1个分量 family=gaussian(),dat

我试图在循环中使用R输入一个方程,因此我使用
as.formula
paste.
最终结果应该是:

library(nlme)
glm(Sepal.Length ~ Sepal.Width + Petal.Length +Petal.Width, 
  family = gaussian(),data=iris)
不管这是不是正确的模式,不要担心,它只是一个例子。我把这些变量分成3个部分

  • 萼片长度和萼片宽度为1个组分
  • 花瓣。长度+花瓣。宽度为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()
放在那里,因为它可能对应于您为这个问题简化的更复杂的逻辑。

glm()的
公式
参数只有这一位:

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()
,因为它可能对应于您为这个问题简化的更复杂的逻辑。

do
glm(重新格式化(c(“萼片宽度”、“花瓣长度”、“花瓣长度”)、“萼片长度”)、“family=gaussian()、data=iris)
do
glm(重新格式化(c(“萼片宽度”、“花瓣长度”),“花瓣宽度”),“萼片长度”),family=gaussian(),data=iris)