繁体   English   中英

在带有glm的for循环中使用paste()

[英]using paste() in a for loop with glm

在下面的代码中,df.pts是一个数据帧。 我想使用不同的y变量(代码中仅显示两个)运行大约十二个glm模型。 我正在使用带有paste()函数的for循环,但似乎无法使paste()函数正常工作。 paste()我缺少什么?

SPCA2 = df.pts[,3]
CLQU2 = df.pts[,4]

df.list = list(SPCA2, CLQU2)

for (i in df.list) {
    qp.mod = glm(paste(i,"~NDVI+ELEV"), family="quasipoisson", data=my.data)
    print(summary(gp.mod))
 }

非常感谢! 主要问题是df.list是向量列表,并且应该是名称列表。

换句话说,就是要纠正问题...

df.list = ("SPCA2", "CLQU2")

代替

df.list = list(SPCA2, CLQU2)

但是,也正确指出该数据帧my.data不是正确的数据帧。 最后,虽然没有它也可以工作,但是函数as.formula()也可以工作。 再次非常感谢!

您需要在paste之前添加as.formula ,以让R知道您要将其视为公式而不是字符。

qp.mod = glm(as.formula(paste(i,"~NDVI+ELEV")), family="quasipoisson", data=my.data)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM