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.

Reply via email to