Hi, Someone help-me on this task some weeks ago, and it is working find to me. I use something like: ----- findmodels <- function(modeltype = "lm", dataset, pattern) { ls <- ls(".GlobalEnv", pattern=pattern) mods <- ls[sapply(ls, function(x) inherits(get(x), modeltype))] if (!missing(dataset)) { data.name <- function(x) as.character(x$call[["data"]]) mods <- mods[sapply(mods, function(x) data.name == dataset)] } models <- lapply(mods, get) class(models) <- c("ensemble", class(models)) models } mod_1<-glm(....) mod_2<-glm(....) models<-NULL models<- findmodels(pattern="mod_") -------------
So you can use a "for (i in 1:length(models))" to extract the statistics tha you want for each model and save it in a file (I´m saving it easily in Access using RODBC). I hope this help, Miltinho Brazil Indermaur Lukas <[EMAIL PROTECTED]> escreveu: Hello I want to batch job the calculation of many GLM-models, extract some values and store them in a file. Almost everything in the script below works (read file, extract values and write them to file) except I fail in indexing the GLM with the modelstructure it should run. Running GLM's conventionally is no problem. Conventionally a GLM is calculated as: -------------------------------------- glm(ZlogHRS ~ ZRi+ZE+ZPROX_MN+ZED+ZAlwd+ZT2+ZW+ZN+Sex+y, family = gaussian, data=t.data) (just a note: dependent variable is ZlogHRS, while the others are indepent variables) Desired way: sequentially run GLM --------------------------------- I want R to take the model structure to take from a vector called "modelstructure" and paste it into the GLM like: glm(modelstructure[i], family = gaussian, data=t.data). It would considerably ease my workload if there is a solution to the indexing problem within a GLM. I appreciate any hint. Best regards Lukas p.s. my R skills are rather poor ----------------------------------------START R-CODE----------------------------------- # Read file t.url <- "C://HR_calculations/2005_2006/HR_SIZE/Kandidatenmodelle_Berechnung/inputfiles/" t.tuti <- read.table(paste(t.url, "All_animals.txt", sep=""),header=T) collect.results <- function(x) { #resets vectors which will be filled i <- 0 AICA <- NA; #put models names hierarchically in vector modelnames <- c("1=global", "2=biotic1", "3=biotic2", "4=abiotic") #keep track of changes in model names and number for (i in 1:length(modelnames)) #model structure of the four models given for all models to run #global modelstructure <- c( "ZlogHRS ~ ZRi+ZE+ZPROX_MN+ZED+ZAlwd+ZT2+ZW+ZN+Sex+y", #biotic1 "ZlogHRS ~ ZRi", #biotic2 "ZlogHRS ~ ZPROX_MN", #abiotic "ZlogHRS ~ ZE") ts.model <- glm(modelstructure[i], family = gaussian, data=t.data) # Extracts some mode results n[i] <- length(resid(ts.model)) AICA[i] <- AIC(ts.model) } #Writes results to data file x = data.frame( modelnames, n, AICA) write.table(x, paste(t.url, file="Results.txt"), sep="\t", quote=F) ----------------------------------------END R-CODE----------------------------------- °°° Lukas Indermaur, PhD student eawag / Swiss Federal Institute of Aquatic Science and Technology ECO - Department of Aquatic Ecology Überlandstrasse 133 CH-8600 Dübendorf Switzerland Phone: +41 (0) 71 220 38 25 Fax : +41 (0) 44 823 53 15 Email: [EMAIL PROTECTED] www.lukasindermaur.ch ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code. __________________________________________________ [[alternative HTML version deleted]]
______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.