簡體   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