[R] plotting NAs

From: John McHenry <john_d_mchenry_at_yahoo.com>
Date: Sat, 08 Mar 2008 09:40:16 -0800 (PST)


Hi WizaRds,

(I've cross-posted to r-sig-finance because a lot of people there use 'zoo' objects).

I'm trying to plot 2 time series lined up with par(mfrow=c(2,1)), so that the time index is the same for the two series. The data have monthly frequency.

An example will illustrate:

# data for these dates (monthly frequency) do not have NAs:
require(zoo)
monthly.dates<- as.Date(c(

    "1991-01-31",
    "1991-02-28",
    "1991-03-31",
    "1991-04-30",
    "1991-05-30"

))
monthly.only.data<- 1:length(monthly.dates)
# data for these extra dates (daily frequency) do have NAs interspersed with
# non-NA data having monthly frequency:
daily.dates<- seq(as.Date("1991-06-01"), as.Date("1991-07-31"), by=1) tmp<- zoo(NA, order.by=c(monthly.dates, daily.dates)) z<- cbind(tmp, tmp)
colnames(z)<- NULL
monthly.in.daily.data<- (1:2)/10
z[index(z) %in% monthly.dates, 1]<- monthly.only.data z[index(z) %in% as.Date(c("1991-06-30","1991-07-31")), 2]<-

        monthly.in.daily.data

# this creates a block of data like that listed below.

Here's my problem: I want to plot lines through all non-NA data. This is straight forward with column 1, but not with column 2. Why? Because the monthly-frequency data in column 2 have NAs interspersed.

plot(z, type="l")

does not plot a line through the points in column 2. (It's not a problem with 'plot.zoo'; same thing happens if you use 'plot' on regular data like:
plot(c(1, NA, 2, 3, NA, 4), type="l")

The following "works" in so far as it will plot the correct picture,

tmp<- zoo(NA, seq(min(index(z)), max(index(z)), by=1)) z<- cbind(tmp, z); z<- z[,-1]
plot(na.omit(z), type="l")
plot(z[!apply(is.na(z), 1, sum)==2,], type="l")

but for various reasons too long to go into here I want to know how to plot lines through the non-NA data in objects like:
c(1, NA, 2, 3, NA, 4)
without having to strip out the NAs with the !apply(is.na(z), 1, sum)==2 hack.

What do I do???

Thanks guys!

Jack.

# p.s. here's that 'zoo' data:

> z

1991-01-31  1  NA
1991-02-28  2  NA
1991-03-31  3  NA
1991-04-30  4  NA
1991-05-30  5  NA
1991-06-01 NA  NA
1991-06-02 NA  NA
1991-06-03 NA  NA
1991-06-04 NA  NA
1991-06-05 NA  NA
1991-06-06 NA  NA
1991-06-07 NA  NA
1991-06-08 NA  NA
1991-06-09 NA  NA
1991-06-10 NA  NA
1991-06-11 NA  NA
1991-06-12 NA  NA
1991-06-13 NA  NA
1991-06-14 NA  NA
1991-06-15 NA  NA
1991-06-16 NA  NA
1991-06-17 NA  NA
1991-06-18 NA  NA
1991-06-19 NA  NA
1991-06-20 NA  NA
1991-06-21 NA  NA
1991-06-22 NA  NA
1991-06-23 NA  NA
1991-06-24 NA  NA
1991-06-25 NA  NA
1991-06-26 NA  NA
1991-06-27 NA  NA
1991-06-28 NA  NA
1991-06-29 NA  NA
1991-06-30 NA 0.1
1991-07-01 NA  NA
1991-07-02 NA  NA
1991-07-03 NA  NA
1991-07-04 NA  NA
1991-07-05 NA  NA
1991-07-06 NA  NA
1991-07-07 NA  NA
1991-07-08 NA  NA
1991-07-09 NA  NA
1991-07-10 NA  NA
1991-07-11 NA  NA
1991-07-12 NA  NA
1991-07-13 NA  NA
1991-07-14 NA  NA
1991-07-15 NA  NA
1991-07-16 NA  NA
1991-07-17 NA  NA
1991-07-18 NA  NA
1991-07-19 NA  NA
1991-07-20 NA  NA
1991-07-21 NA  NA
1991-07-22 NA  NA
1991-07-23 NA  NA
1991-07-24 NA  NA
1991-07-25 NA  NA
1991-07-26 NA  NA
1991-07-27 NA  NA
1991-07-28 NA  NA
1991-07-29 NA  NA
1991-07-30 NA  NA
1991-07-31 NA 0.2




       
---------------------------------

	[[alternative HTML version deleted]]

______________________________________________
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. Received on Sat 08 Mar 2008 - 17:46:25 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Sat 08 Mar 2008 - 19:31:18 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive