[R] Is there simple code for this simple financial time series task?
Gabor Grothendieck
ggrothendieck at gmail.com
Wed Feb 20 02:54:25 CET 2008
Assuming the time values are in ascending order within date:
ts$prices <- ave(ts$prices, dates, FUN = function(x) tail(x, 1))
On Feb 19, 2008 8:41 PM, Edwin Hoyle <edwinhoyle at yahoo.com> wrote:
> My code below makes a data frame with columns for
> date, time, and price. Time on each date runs from 1
> to 4.
>
> I'd like to add a new column "ts$closingprice", which
> would have the closing price for that date. To find
> the closing price, I'd like to take the price in the
> row having the greatest time value for each date.
> Then I'd like to fill that closing price into the
> $closingprice column for all other rows having the
> same date.
>
> --This appears to be such an easy task, yet is there a
> simple way to do it that doesn't require a lot of
> cleverness?
>
> dates<-c(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4)
> times<-c(1,2,3,4)
> prices<-c(14,15,16,15,15.5,16,14,13,13,11,12,13,14,15,16,15)
> ts<-matrix(nrow=16,ncol=3)
> ts[,1]<-dates;ts[,2]<-times;ts[,3]<-prices;ts
> ts<-as.data.frame(ts);
> names(ts)<-c("dates","times","prices");ts
>
> dates times prices
> 1 1 1 14.0
> 2 1 2 15.0
> 3 1 3 16.0
> 4 1 4 15.0
> 5 2 1 15.5
> 6 2 2 16.0
> 7 2 3 14.0
> 8 2 4 13.0
> 9 3 1 13.0
> 10 3 2 11.0
> 11 3 3 12.0
> 12 3 4 13.0
> 13 4 1 14.0
> 14 4 2 15.0
> 15 4 3 16.0
> 16 4 4 15.0
>
>
> ____________________________________________________________________________________
> Never miss a thing. Make Yahoo your home page.
>
> ______________________________________________
> 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.
>
More information about the R-help
mailing list