Thank you everyone for your help so far. I am still working on the problem to get a merged new dataframe which fills in new rows with NA values for each year that is missing for plotting with gaps ( in the example the item BARTLEY: years 1984 to 1987 should be filled with a row containing NA values). Could someone maybe help me with this? Thank you.
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 1988 2 BARTLEY 893 1989 -1 CANADA 877 1972 -1 CLARK CPI 894 1973 -3 Am 01.08.2014 um 11:27 schrieb PIKAL Petr <petr.pi...@precheza.cz>: > Hi > > Maybe others will disagree but I find for cycle for this type of task better > than sapply. > > for(i in 1:length(ind)) { > > if (there are more than 3 date items*) { > > postscript(ind[i]) > do all plotting > dev.off() > }} > > If you want to plot with gaps you need to add all relevant YEARs for x axis > with missing value in y before plotting. Then R plots it automatically with > gap. > > x<-1:10 > y<-rnorm(10) > y[5:6]<-NA > plot(x,y, type="b") > > I would suggest to use merge for this task. > > table(dat$ID) > gives you number of unique values for each ID and you can use it for > discarding this ID from the list. > > Regards > Petr > > >> -----Original Message----- >> From: r-help-boun...@r-project.org [mailto:r-help-bounces@r- >> project.org] On Behalf Of fd >> Sent: Thursday, July 31, 2014 4:37 PM >> 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. > > ________________________________ > Tento e-mail a jakékoliv k němu připojené dokumenty jsou důvěrné a jsou > určeny pouze jeho adresátům. > Jestliže jste obdržel(a) tento e-mail omylem, informujte laskavě neprodleně > jeho odesílatele. Obsah tohoto emailu i s přílohami a jeho kopie vymažte ze > svého systému. > Nejste-li zamýšleným adresátem tohoto emailu, nejste oprávněni tento email > jakkoliv užívat, rozšiřovat, kopírovat či zveřejňovat. > Odesílatel e-mailu neodpovídá za eventuální škodu způsobenou modifikacemi či > zpožděním přenosu e-mailu. > > V případě, že je tento e-mail součástí obchodního jednání: > - vyhrazuje si odesílatel právo ukončit kdykoliv jednání o uzavření smlouvy, > a to z jakéhokoliv důvodu i bez uvedení důvodu. > - a obsahuje-li nabídku, je adresát oprávněn nabídku bezodkladně přijmout; > Odesílatel tohoto e-mailu (nabídky) vylučuje přijetí nabídky ze strany > příjemce s dodatkem či odchylkou. > - trvá odesílatel na tom, že příslušná smlouva je uzavřena teprve výslovným > dosažením shody na všech jejích náležitostech. > - odesílatel tohoto emailu informuje, že není oprávněn uzavírat za společnost > žádné smlouvy s výjimkou případů, kdy k tomu byl písemně zmocněn nebo písemně > pověřen a takové pověření nebo plná moc byly adresátovi tohoto emailu > případně osobě, kterou adresát zastupuje, předloženy nebo jejich existence je > adresátovi či osobě jím zastoupené známá. > > This e-mail and any documents attached to it may be confidential and are > intended only for its intended recipients. > If you received this e-mail by mistake, please immediately inform its sender. > Delete the contents of this e-mail with all attachments and its copies from > your system. > If you are not the intended recipient of this e-mail, you are not authorized > to use, disseminate, copy or disclose this e-mail in any manner. > The sender of this e-mail shall not be liable for any possible damage caused > by modifications of the e-mail or by delay with transfer of the email. > > In case that this e-mail forms part of business dealings: > - the sender reserves the right to end negotiations about entering into a > contract in any time, for any reason, and without stating any reasoning. > - if the e-mail contains an offer, the recipient is entitled to immediately > accept such offer; The sender of this e-mail (offer) excludes any acceptance > of the offer on the part of the recipient containing any amendment or > variation. > - the sender insists on that the respective contract is concluded only upon > an express mutual agreement on all its aspects. > - the sender of this e-mail informs that he/she is not authorized to enter > into any contracts on behalf of the company except for cases in which he/she > is expressly authorized to do so in writing, and such authorization or power > of attorney is submitted to the recipient or the person represented by the > recipient, or the existence of such authorization is known to the recipient > of the person represented by the recipient. ______________________________________________ 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.