You could do most of this with the function lmList in the nlme package, but since you want both plots and summaries, you might as well do it in a more flexible loop.
How about something like this: Code: ## This makes a single factor to define your groups BCI <- within(BCI, Sp_ind_core <- factor(paste(Species, Individual, Core, sep = "_"))) ## to receive your plots: jpeg(filename = "BCI_plot_%03d.jpg") ## or whatever... ## to receive your printed summaries: sink("BCI_output.txt") ## a function to do all the work: action <- function(data) { group <- as.character(data$Sp_ind_core[1]) plot(WD..g.cm3 ~ DP..cm, data, xlab = "Distance from pith cm", main = group, ylab = "Wood densith g/cm3") modl <- lm(WD..g.cm3 ~ DP..cm, data) cat("\n\n Subset: ", group, "\n") print(summary(modl)) invisible(modl) } ### now for the loop result <- lapply(split(BCI, BCI$Sp_ind_core), action) ## Finally tidy up sink() dev.off() -----Original Message----- From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On Behalf Of Oyomoare Osazuwa-Peters Sent: Tuesday, 21 September 2010 7:47 AM To: r-help@r-project.org Subject: [R] Help! Please I need some help using R to analyse my data. What I would like to do is to repeat the same basic process (e. g. linear regression between wood density and distance from pith) for at least 240 data subsets within the main data-frame. Within the main data-frame, these data subsets will be defined by three variables namely, species, individual and core (i. e. 20 species, at least 6 individuals of each species, and 2 cores from each individual). Whereas I can write the code to carry out this process for each subset, I am unable to successfully instruct R to automatically carry out the process for each of these subsets (perhaps using loops). So to illustrate what I have done so far with the codes below I was able to run a regression analysis for core 'a' of individual 1 in the species "Apeime". But rather than do this 240 times, I would like to tell R to repeat the process automatically using loops or any method that works. Code: RG2 <- BCI[BCI$Species == "APEIME" & BCI$Individual == 1 & BCI$Core == "a", ] plot(x = RG2$DP..cm., y=RG2$WD..g.cm3, xlab = "Distance from pith cm", main = "APEIME1a", ylab = "Wood density g/cm3") RG2lm <- lm(RG2$WD..g.cm3~RG2$DP..cm.) summary(RG2lm) Thanks Oyomoare ______________________________________________ R-help@r-project.org 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.