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.