[R] using loops to create multiple images

Stephen Tucker brown_emu at yahoo.com
Mon Aug 6 02:13:04 CEST 2007


Not sure exactly what 'results' is doing there or 'barplot(table(i),...)'
does  [see ?table]

but I think this is sort of what you want to do?

## Variable assignment
G01_01 <- 1:10
G01_02 <- 2:6

## Combine to list*
varnames <- paste("G01_",substring(100+1:2,2),sep="")
vars <- lapply(`names<-`(as.list(varnames),varnames),
               function(x) eval(parse(text=x)))
print(vars)

## Plotting
for( i in 1:length(vars) ) {
  filenm <- paste("/my/dir/barplot",i,".png",sep="")
  barplot(...)
  dev.copy(png,filename=filenm,...)
  dev.off()
}

## **Combining to list, step-by-step
## does the same thing as above
digits <- substring(100+1:2,2)
varnames <- paste("G01_",digits,sep="")
vars <- as.list(varnames)
names(varlist) <- vars
# convert character string of variable names to
# expressions via parse() and evaluate by eval()
vars <- lapply(varlist,function(x) eval(parse(text=x)))
print(vars)

I think in many cases paste() is your answer...


--- "Donatas G." <dgvirtual at akl.lt> wrote:

> I have a data.frame with ~100 columns and I need a barplot for each column 
> produced and saved in some directory.
> 
> I am not sure it is possible - so please help me.
> 
> this is my loop that does not work...
> 
> vars <- list (substitute (G01_01), substitute (G01_02), substitute
> (G01_03), 
> substitute (G01_04))
> results <- data.frame ('Variable Name'=rep (NA, length (vars)), 
> check.names=FALSE)
> for (i in 1:length (vars))  {
> barplot(table(i),xlab=i,ylab="NuomonÄ—s")
> dev.copy(png, filename="/my/dir/barplot.i.png", height=600, width=600)
> dev.off()
> }
> 
> questions: 
> 
> Is it possible to use the i somewhere _within_ a file name? (like it is 
> possible in other programming or scripting languages?)
> 
> Since I hate to type in all the variables (they go from G01_01 to G01_10
> and 
> then from G02_01 to G02_10 and so on), is it possible to shorten this list
> by 
> putting there another loop, applying some programming thing or so? 
> 
> -- 
> Donatas Glodenis
> http://dg.lapas.info
> 
> ______________________________________________
> 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.
> 



       
____________________________________________________________________________________

that gives answers, not web links.



More information about the R-help mailing list