[R] plot two time series with different length and different starting point in one figure.

arun smartpink111 at yahoo.com
Tue Jan 22 23:06:12 CET 2013


HI Rebecca,
Try this:

dateA<-seq.Date(as.Date("28JAN2012",format="%d%B%Y"),as.Date("28DEC2012",format="%d%B%Y"),by="month")
dateB<-seq.Date(as.Date("30JAN2012",format="%d%B%Y"),as.Date("30DEC2012",format="%d%B%Y"),by="month")
set.seed(15)
 A<-data.frame(dateA,value=cumsum(sample(1:50,12,replace=TRUE)))
 set.seed(25)
 B<-data.frame(dateB,value=cumsum(sample(1:72,12,replace=TRUE)))
B[,1]<-as.Date(gsub("\\d+$","28",B[,1]))
 B[,1][duplicated(B[,1],fromLast=TRUE)]<-as.Date(gsub("(.*-).*(-.*)","\\102\\2",B[,1][duplicated(B[,1],fromLast=TRUE)])) #this step may not be needed in ur data.  In the month of march, there were two values
library(xts)
Anew<-as.xts(A[,-1],order.by=A[,1])
 Bnew<-as.xts(B[,-1],order.by=B[,1])
 res<-merge(Anew,Bnew)
library(zoo)
plot.zoo(res)
A.K.



----- Original Message -----
From: "Yuan, Rebecca" <rebecca.yuan at bankofamerica.com>
To: 'arun' <smartpink111 at yahoo.com>
Cc: 
Sent: Tuesday, January 22, 2013 3:53 PM
Subject: RE: [R] plot two time series with different length and different starting point in one figure.

Hello Arun,

I do not want to remove those NA values because they are the monthly data but recorded as the last calendar date in A and last business date in B.

I tried to use 

raw_time    <- substr(raw_time,3,9)
raw_time    <- as.Date(raw_time,format="%d%B%Y")

to cutoff the date and leave the month and year in raw_time, and then convert it to a valid date type of data, but I failed.

Is there a way that I can present

2012-09-28       NA          NA    5400726 14861715970 
2012-09-30  5035606 14832837436         NA          NA

into something like

2012-09-30  5035606 14832837436    5400726 14861715970

By converting 2012-09-28 to the last calendar date as of 2012-09-30 then B will be recorded at the last business date of the month, and will not have any NA values.

Dput() gives me

> dput(tail(res))
structure(c(121, NA, 111, 111, 120, 119, 309, 
NA, 313, 307, 30, 313, 130, 
130, NA, 130, 130, 130, 309, 313, 
NA, 309, 310, 315), class = c("xts", 
"zoo"), .indexCLASS = "Date", .indexTZ = "", tclass = "Date", tzone = "", index = structure(c(134, 
134, 134, 135, 135, 135), tzone = "", tclass = "Date"), .Dim = c(6L, 
4L), .Dimnames = list(NULL, c("raw_acct", "raw_baln", "raw_acct.1", 
"raw_baln.1")))

Thanks very much!

Cheers,

Rebecca

-----Original Message-----
From: arun [mailto:smartpink111 at yahoo.com] 
Sent: Tuesday, January 22, 2013 3:41 PM
To: Yuan, Rebecca
Cc: R help
Subject: Re: [R] plot two time series with different length and different starting point in one figure.

Hi Rebecca,

In the previous email,
  res<-merge(Anew,Bnew)
head(res)
#           Anew Bnew
#2012-01-01  181   NA
#2012-01-02   59   NA
#2012-01-03  290   NA
#2012-01-04  196   NA
#2012-01-05  111   NA
#2012-01-06  297   NA
 
plot.zoo(res) # removes the NA values from Bnew.. (if NA was present in Anew, I guess, it would remove that from plotting)  

If you want to remove the NA rows:
use, na.omit() or complete.cases()? #as I did in the previous email.

Could you dput() an example dataset?

A.K.
 




----- Original Message -----
From: "Yuan, Rebecca" <rebecca.yuan at bankofamerica.com>
To: 'arun' <smartpink111 at yahoo.com>
Cc: R help <r-help at r-project.org>
Sent: Tuesday, January 22, 2013 2:38 PM
Subject: RE: [R] plot two time series with different length and different starting point in one figure.

Hello Arun,

This would help me to get the date type of data. A new question comes out that since the dates are not exactly the same on two date sets, there are some NA values in the merged data set, such as

2012-09-28       NA          NA    5400726 14861715970 2012-09-30  5035606 14832837436         NA          NA

Does R have a function to convert the date to some format of Sep,2012, therefore when I merge those two, they will not have those NA numbers...

Thanks,

Rebecca

-----Original Message-----
From: arun [mailto:smartpink111 at yahoo.com]
Sent: Tuesday, January 22, 2013 2:15 PM
To: Yuan, Rebecca
Cc: R help
Subject: Re: [R] plot two time series with different length and different starting point in one figure.

Hi Rebecca,

Assuming that 'raw_data' is data.frame with first column as "raw_time:
You could convert the raw_time to date format by 

 as.Date("28FEB2002",format="%d%B%Y")
#[1] "2002-02-28"

In your data, it should  be:
raw_data$raw_time<- as.Date(raw_time,format="%d%B%Y")

Could you just dput() a few lines of your dataset if this is not working?
Tx.

A.K.




----- Original Message -----
From: "Yuan, Rebecca" <rebecca.yuan at bankofamerica.com>
To: 'arun' <smartpink111 at yahoo.com>
Cc: 
Sent: Tuesday, January 22, 2013 2:08 PM
Subject: RE: [R] plot two time series with different length and different starting point in one figure.

Hello Arun,

My data shows that I do not have a date type of data:

summary(raw_data)
      raw_time      raw_acct         raw_baln
28FEB2002:  1   Min.   : 61714   Min.   :117079835
28FEB2003:  1   1st Qu.: 75587   1st Qu.:158035150
28FEB2005:  1   Median :100234   Median :206906298
28FEB2006:  1   Mean   : 96058   Mean   :210550369
28FEB2007:  1   3rd Qu.:116908   3rd Qu.:263623782
28FEB2009:  1   Max.   :121853   Max.   :325290870
(Other)  :127                                      
>

How could I transfer the "raw_time" column to a date format, such as

summary(dateA)
        Min.      1st Qu.       Median         Mean      3rd Qu.         Max. 
"2012-01-01" "2012-04-01" "2012-07-01" "2012-07-01" "2012-09-30" "2012-12-31"


Thanks very much!

Cheers,

Rebecca

-----Original Message-----
From: arun [mailto:smartpink111 at yahoo.com]
Sent: Tuesday, January 22, 2013 12:39 PM
To: Yuan, Rebecca
Cc: R help; Petr PIKAL
Subject: Re: [R] plot two time series with different length and different starting point in one figure.

Hi,

You could also try this:
dateA<-seq.Date(as.Date("1jan2012",format="%d%b%Y"),as.Date("31Dec2012",format="%d%b%Y"),by="day")
 dateB<-seq.Date(as.Date("1Mar2012",format="%d%b%Y"),as.Date("30Nov2012",format="%d%b%Y"),by="day")
set.seed(15)
 A<-data.frame(dateA,value=sample(1:300,366,replace=TRUE))
 set.seed(25)
 B<-data.frame(dateB,value=sample(1:300,275,replace=TRUE))
library(xts)
Anew<-as.xts(A[,-1],order.by=A[,1])
 Bnew<-as.xts(B[,-1],order.by=B[,1])
 res<-merge(Anew,Bnew)
res1<-res[complete.cases(res),]
library(zoo)
plot.zoo(res1)
plot.zoo(res)

A.K.




----- Original Message -----
From: "Yuan, Rebecca" <rebecca.yuan at bankofamerica.com>
To: 'PIKAL Petr' <petr.pikal at precheza.cz>
Cc: R help <r-help at r-project.org>
Sent: Tuesday, January 22, 2013 10:36 AM
Subject: Re: [R] plot two time series with different length and different starting point in one figure.

Hello Petr,

As the time series have the same column names, I got the error message like:


--------------------------------------------------------------------
> m1<-merge(A, B, by.x = "time", by.y = "balance")
Error in fix.by(by.x, x) : 'by' must specify uniquely valid column(s)
--------------------------------------------------------------------

To plot A and B in one plot is to compare the difference between them...

Any other thoughts?

Thanks,

Rebecca


-----Original Message-----
From: PIKAL Petr [mailto:petr.pikal at precheza.cz]
Sent: Tuesday, January 22, 2013 10:28 AM
To: Yuan, Rebecca; R help
Subject: RE: plot two time series with different length and different starting point in one figure.

Hi

> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r- 
> project.org] On Behalf Of Yuan, Rebecca
> Sent: Tuesday, January 22, 2013 4:07 PM
> To: R help
> Subject: [R] plot two time series with different length and different 
> starting point in one figure.
> 
> Hello,
> 
> I do have two different time series A and B, they are different in 
> length and starting point. A starts in Jan, 2012 and ends in Dec, 2012 
> and B starts in March, 2012 and ends in Nov, 2012.
> 
> How can I plot those two series A and B in the same plot? I.E., from 
> Jan. 2012 - Feb, 2012, it would have one data point from A and from 
> Mar, 2012-Nov, 2012, it would have two data points from A and B, and 
> in December 2012, it would have one data point from A.

Merge those 2 series.

?merge

Regards
Petr

> 
> Thanks very much!
> 
> Cheers,
> 
> Rebecca
> 
> 
> ----------------------------------------------------------------------
> This message, and any attachments, is for the 
> intended...{{dropped:13}}

______________________________________________
R-help at 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.

----------------------------------------------------------------------
This message, and any attachments, is for the intended recipient(s) only, may contain information that is privileged, confidential and/or proprietary and subject to important terms and conditions available at http://www.bankofamerica.com/emaildisclaimer.   If you are not the intended recipient, please delete this message.

----------------------------------------------------------------------
This message, and any attachments, is for the intended recipient(s) only, may contain information that is privileged, confidential and/or proprietary and subject to important terms and conditions available at http://www.bankofamerica.com/emaildisclaimer.   If you are not the intended recipient, please delete this message.

----------------------------------------------------------------------
This message, and any attachments, is for the intended recipient(s) only, may contain information that is privileged, confidential and/or proprietary and subject to important terms and conditions available at http://www.bankofamerica.com/emaildisclaimer.   If you are not the intended recipient, please delete this message.




More information about the R-help mailing list