While youre at it, assign length(ind) to a variable before starting the loop. Otherwise length() is called at each iteration. e.g.,
ind.length <- length(ind) for (i in 1:ind.length) { etc. On Jul 31, 2014, at 10:57 AM, David L Carlson <dcarl...@tamu.edu> wrote: > This is one of those times when you would do better to just use a loop. It > will be easier to debug and to see what is going on. Replace the sapply() > call with > > for (i in 1:length(ind)) { > postscript(names(ind[i])) > par(mar=c(6,8,6,5), cex=0.8) > plot(ind[[i]][,c('YEAR','VALUE')], > type='b', > main = ind[[i]][1, "NAME"], > . . . other commands . . . ) > dev.off() > } > > ------------------------------------- > David L Carlson > Department of Anthropology > Texas A&M University > College Station, TX 77840-4352 > > > > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On > Behalf Of fd > Sent: Thursday, July 31, 2014 9:37 AM > To: r-help@r-project.org > Subject: [R] Multiple plots and postscripts using split function > > Hi, > > I'm relatively new to R and I would like to do the following: > > I have a .csv file with four columns (NAME, ID, YEAR, VALUE) and would like > to do several xy plots with the year on the x-axis and the data values > (measurements) on the y-axis and after that export the different plots to > postcript. > > My .csv file looks something like this (only an example): > > NAME ID YEAR VALUE > ADAMS 885 1988 -2 > ADAMS 885 1989 0 > BAHIA DEL DIABLO 2665 1999 4 > BAHIA DEL DIABLO 2665 2000 8 > BAHIA DEL DIABLO 2665 2001 19 > BAHIA DEL DIABLO 2665 2002 13 > BAHIA DEL DIABLO 2665 2003 13 > BARTLEY 893 1983 0 > BARTLEY 893 1984 -1 > BARTLEY 893 1985 0 > BARTLEY 893 1988 2 > BARTLEY 893 1989 -1 > CANADA 877 1972 -1 > > I have split the different items into groups and I'd like the plots to have > the title of NAME but the filename of the postscript to be exported should > have the ID as filename. > > My code so far: > > #Set Working Directory: > setwd("/Users/Desktop/FV") > # Read CSV > dat <- read.csv("FV.csv", sep=";", header=TRUE) > # Split Data > ind <- split(x = dat,f = dat[,'ID']) > nam <- names(ind) > > sapply(nam, function(x) { > postscript(x) > par(mar=c(6,8,6,5), cex=0.8) > plot(ind[[x]][,c('YEAR','VALUE')], > type='b', > main = x, > xlab="Time [Years]", > ylab="Front variation") > axis(1, at = seq(1800,2100,5), cex.axis=1, labels=FALSE, tcl=-0.3) > axis(2, at = seq(-100000,100000,500), cex.axis=1, labels=FALSE, > tcl=-0.3) > > dev.off() > }) > > This results in plots with the title and filename of the resulting > postscript being the same. Is there a way to get the plot title out of the > NAME column and the filename out of the ID? > > Additionally I'd only like to plot graphs for items with more than 3 data > values. Is this possible to incorporate in the split command? > > Another point is that some items have gaps in the time series where no > measurements were taken (in my example: BARTLEY from 1983 to 1985 and 1988 > to 1989). I would like to plot using type= 'b' so that the points are > connected with lines, but when doing that, the values between 1985 and 1988 > are automatically connected which I don't want. I'd like the plot to start > again at the value where the gap ends (in my example from 1988 onwards). Is > there a solution for this? > > Any help is kindly appreciated! Thanks for your help. > > Kind regards, > fd > > > > -- > View this message in context: > http://r.789695.n4.nabble.com/Multiple-plots-and-postscripts-using-split-function-tp4694850.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > 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. > ______________________________________________ > 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. Don McKenzie Research Ecologist Pacific Wildland Fire Sciences Lab US Forest Service Affiliate Professor School of Environmental and Forest Sciences University of Washington d...@uw.edu [[alternative HTML version deleted]]
______________________________________________ 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.