Gabor, Maybe I am doing this wrong, but rule=2 does not look like it is growing the series out, but rather just carrying the last value forward. It looks like na.approx() followed by na.locf(). For instance:
m <- zoo(cbind(c(1, 2, NA, NA, 5, NA, NA), seq(7)^2), as.Date(1:7)) na.approx(m[, 1], x = m[, 2], rule=2) 1970-01-02 1970-01-03 1970-01-04 1970-01-05 1970-01-06 1970-01-07 1970-01-08 1.0 2.0 2.7 3.7 5.0 5.0 5.0 Abiel Reinhart -----Original Message----- From: Gabor Grothendieck [mailto:ggrothendi...@gmail.com] Sent: Wednesday, May 12, 2010 10:40 AM To: Abiel X Reinhart Cc: r-help@r-project.org Subject: Re: [R] Vectorized expression to extrapolate matrix columns with columns of another matrix Use rule = 2 as in the extrapolation examples in the na.approx help file. On Wed, May 12, 2010 at 10:10 AM, Abiel X Reinhart <abiel.x.reinh...@jpmchase.com> wrote: > Gabor, > > This comes close to solving my problem, but I am still left with the problem > of how I can extrapolate, not just interpolate. In our example, if I define m > as, > > m <- zoo(cbind(c(1, 2, NA, NA, 5, NA, NA), seq(7)^2), as.Date(1:7)) > > instead of > > m <- zoo(cbind(c(1, 2, NA, NA, 5, NA, 7), seq(7)^2), as.Date(1:7)) > > then I will only get five values back, when I really want m[,1] to be fully > extrapolated so that there are seven values. Is there a workaround? > > Abiel Reinhart > > -----Original Message----- > From: Gabor Grothendieck [mailto:ggrothendi...@gmail.com] > Sent: Wednesday, May 12, 2010 8:37 AM > To: Abiel X Reinhart > Cc: r-help@r-project.org > Subject: Re: [R] Vectorized expression to extrapolate matrix columns with > columns of another matrix > > Try this using the zoo package. See ?na.approx for more and note that > this functionality requires zoo 1.6-3 or later. > > .> m <- zoo(cbind(c(1, 2, NA, NA, 5, NA, 7), seq(7)^2), as.Date(1:7)) >> na.approx(m[, 1], x = m[, 2]) > 1970-01-02 1970-01-03 1970-01-04 1970-01-05 1970-01-06 1970-01-07 1970-01-08 > 1.000000 2.000000 2.714286 3.714286 5.000000 5.916667 7.000000 >> na.approx(m[, 1]) > 1970-01-02 1970-01-03 1970-01-04 1970-01-05 1970-01-06 1970-01-07 1970-01-08 > 1 2 3 4 5 6 7 > > > On Tue, May 11, 2010 at 4:48 PM, Abiel X Reinhart > <abiel.x.reinh...@jpmchase.com> wrote: >> I have two identically sized matrices of data that represent time series (I >> am storing the data in zoo objects, but the idea should apply to any matrix >> of data). The time series in the second matrix extend further than in the >> first matrix, and I would like to use the data in matrix 2 to extrapolate >> the data in matrix 1. In other words, if mat1[i,j] == NA, then mat1[i,j] <- >> mat1[i-1, j]*mat2[i,j]/mat2[i-1,j]. Of course, before we can calculate >> mat1[i,j] we may need to calculate mat1[i-1,j], and that in turn may require >> the computation of mat1[i-2,j], etc. This could all clearly be done with >> loops, but I am wondering if anyone can think of a vectorized expression or >> other efficient method that would work. >> >> Thanks very much. >> >> Abiel Reinhart >> This communication is for informational purposes only. It is not >> intended as an offer or solicitation for the purchase or sale of >> any financial instrument or as an official confirmation of any >> transaction. All market prices, data and other information are not >> warranted as to completeness or accuracy and are subject to change >> without notice. Any comments or statements made herein do not >> necessarily reflect those of JPMorgan Chase & Co., its subsidiaries >> and affiliates. >> >> This transmission may contain information that is privileged, >> confidential, legally privileged, and/or exempt from disclosure >> under applicable law. If you are not the intended recipient, you >> are hereby notified that any disclosure, copying, distribution, or >> use of the information contained herein (including any reliance >> thereon) is STRICTLY PROHIBITED. Although this transmission and any >> attachments are believed to be free of any virus or other defect >> that might affect any computer system into which it is received and >> opened, it is the responsibility of the recipient to ensure that it >> is virus free and no responsibility is accepted by JPMorgan Chase & >> Co., its subsidiaries and affiliates, as applicable, for any loss >> or damage arising in any way from its use. If you received this >> transmission in error, please immediately contact the sender and >> destroy the material in its entirety, whether in electronic or hard >> copy format. Thank you. >> >> Please refer to http://www.jpmorgan.com/pages/disclosures for >> disclosures relating to European legal entities. >> >> ______________________________________________ >> 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.