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.

Reply via email to