В приведенном ниже коде df.pts - это dataframe. Я бы хотел запустить около дюжины моделей glm с использованием другой переменной y (только две цифры показаны в коде). Я использую цикл for с функцией paste(), но я не могу заставить функцию paste() работать правильно. Что мне не хватает с помощью paste()?с использованием paste() в цикле for с glm
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))
}
Вы попробовали 'qp.mod = glm (as.formula (paste (i," ~ NDVI + ELEV ")), family =" quasipoisson ", data = my.data)'? – Hao
проблема может быть с 'data = my.data'; R будет пытаться найти переменные, провозглашенные в формуле, в эту кажущуюся неочевидной (?) 'My.data'. Если 'NDVI' и' ELEV' действительно находятся в фрейме данных с именем 'my.data', тогда проблема находится в другом месте. Но если они просто векторы, не принадлежащие какому-либо файловому кадру, просто опустите аргумент 'data = my.data'. –
Проблема заключается в том, что вы передаете вектор значений (т.е. 'df.pts [, 3]') в 'формулу'. Здесь вы хотите передать имя переменной. Поэтому 'df.list' должен быть списком имен переменных, а не фактическими данными. Обратите внимание, что у вас есть опечатка в сводном заявлении. – user20650