[英]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.