Я мог бы использовать некоторую помощь, оборачивая цикл вокруг функции.
У меня есть 26 различных моделей для разных видов растений, которые имеют одинаковые объясняющие переменные и структуру. В конечном итоге я хочу извлечь коэффициенты модели в таблицу.
Сначала я создал функцию для извлечения коэффициентов из одной модели и поместил их в ряд пустого фрейма данных с именем mod.out. Я могу запустить эту функцию для отдельной модели, введя название модели и уникальный номер строки.
coefs<- function(model, row.num){
mod.out[row.num,1]<-strtrim(deparse(substitute(model)), 4)
mod.out[row.num, 2:4]<-summary(model)$coefficients[1, c(1,2,4)]
mod.out[row.num,5:7]<-summary(model)$coefficients[2, c(1,2,4)]
mod.out[row.num,8:10]<-summary(model)$coefficients[3, c(1,2,4)]
mod.out[row.num,11:13]<-summary(model)$coefficients[4, c(1,2,4)]
mod.out[row.num,14]<-summary(model)$optinfo$val[1]
return(mod.out)
}
Что я хотел бы сделать сейчас, так это написать цикл, чтобы пройти через эту функцию для каждой модели, чтобы поместить каждый набор коэффициентов в новую строку в кадре данных mod.out. Модели блестят. Я создал список всех названий моделей:
mod.name<-c(abam.mort, abco.mort, abgr.mort, abla.mort, acma.mort, arme.mort, cade.mort, chch.mort, chla.mort, juoc.mort, laoc.mort, lide.mort, pial.mort, piat.mort, pico.mort, pien.mort, pije.mort, pila.mort, pimo.mort, pipo.mort, psme.mort, quch.mort, thpl.mort, tshe.mort, tsme.mort, umca.mort)
Я думал, что смогу довольно легко написать функцию цикла, чтобы пройти через нее, но я не могу заставить ее работать. Я пробовал много разных разновидностей команд get () и paste (), но я делаю что-то не так. Я думаю, что проблема в том, как я определяю имя модели, когда функция находится внутри циклов, но я не могу понять это. Любая помощь будет принята с благодарностью. Прямо сейчас у меня есть:
for(i in 1:nrow(mod.out)){
coefs(mod.name[i], i)}
Я знаю, что есть пакеты, которые делают подобные вещи, но я усердно работаю над изучением функций и циклов, поэтому я действительно хотел бы сделать это таким образом, если это возможно. Спасибо!