在下面的代码中,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))
}
答案 0 :(得分:2)
非常感谢!主要问题是df.list是一个向量列表,应该是一个名称列表。
换句话说,纠正问题...
df.list = ("SPCA2", "CLQU2")
而不是
df.list = list(SPCA2, CLQU2)
但是,也正确地指出数据帧my.data不是正确的数据帧。最后,虽然它没有它,但函数as.formula()也有效。再次,非常感谢!
答案 1 :(得分:0)
您需要在as.formula
之前添加paste
,让R知道您要将其视为公式而不是字符。
qp.mod = glm(as.formula(paste(i,"~NDVI+ELEV")), family="quasipoisson", data=my.data)