[R] Help!

Bill.Venables at csiro.au Bill.Venables at csiro.au
Tue Sep 21 00:30:41 CEST 2010


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-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Oyomoare Osazuwa-Peters
Sent: Tuesday, 21 September 2010 7:47 AM
To: r-help at 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



More information about the R-help mailing list