[R] batch job GLM calculations

Prof Brian Ripley ripley at stats.ox.ac.uk
Thu Jan 11 10:16:51 CET 2007


>From ?glm:

  formula: a symbolic description of the model to be fit. The details of
           model specification are given below.

which could be clearer. It needs to be a object of type 'formula'.

I believe as.formula(modelstructure[i]) will do what you want (but your 
posting has come out rather awkwardly laid out in double spacing).

On Thu, 11 Jan 2007, Indermaur Lukas wrote:

> 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: lukas.indermaur at eawag.ch
> www.lukasindermaur.ch
>
> ______________________________________________
> R-help at 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.
>

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595


More information about the R-help mailing list