# Computing day-over-day log return for a matrix containing multiple time series

7 messages
Open this post in threaded view
|

## Computing day-over-day log return for a matrix containing multiple time series

 Hi all,   Thanks a lot for anyone's help in advance.   I am trying to find a way to compute the day-to-day return (log return) from a n x r matrix containing, n different stocks and price quotes over r days. The time series of prices are already split by using unstack function.   For the result, I would like to see a n x (r-1) matrix, where by each entry is the day-over-day return of each stock.   I tried to look into the zoo package, however it seems to give only the plots but not the actual data.   Would apply function work in this case?   Thanks a lot!         [[alternative HTML version deleted]] ______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

## Re: Computing day-over-day log return for a matrix containing multiple time series

 Hope this helps a <- matrix(runif(150),nrow=3,ncol=50) p2r <- function(x) 100 * diff(log(x))  t(apply(a,1,function(x){p2r(c(x))})) On Mon, Jun 7, 2010 at 8:41 AM, Anyi Zhu <[hidden email]> wrote: > Hi all, > > > > Thanks a lot for anyone's help in advance. > > > > I am trying to find a way to compute the day-to-day return (log return) > from > a n x r matrix containing, n different stocks and price quotes over r days. > The time series of prices are already split by using unstack function. > > > > For the result, I would like to see a n x (r-1) matrix, where by each entry > is the day-over-day return of each stock. > > > > I tried to look into the zoo package, however it seems to give only the > plots but not the actual data. > take a look at vignette("zoo-quickref",package="zoo") It gives an exact solution to your problem > > > > Would apply function work in this case? > > > > Thanks a lot! > > >        [[alternative HTML version deleted]] > > ______________________________________________ > [hidden email] 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. >         [[alternative HTML version deleted]] ______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

## Re: Computing day-over-day log return for a matrix containing multiple time series

 Actually the 'apply' is not necessary. The original poster has stocks as rows rather than the customary columns, so the following should suffice: retmat <- diff(log(t(pricemat))) Questions that are specifically financial should be sent to r-sig-finance (you need to subscribe before posting). On 07/06/2010 07:12, sayan dasgupta wrote: > Hope this helps > > a<- matrix(runif(150),nrow=3,ncol=50) > p2r<- function(x) 100 * diff(log(x)) >   t(apply(a,1,function(x){p2r(c(x))})) > > > > > On Mon, Jun 7, 2010 at 8:41 AM, Anyi Zhu<[hidden email]>  wrote: > >> Hi all, >> >> >> >> Thanks a lot for anyone's help in advance. >> >> >> >> I am trying to find a way to compute the day-to-day return (log return) >> from >> a n x r matrix containing, n different stocks and price quotes over r days. >> The time series of prices are already split by using unstack function. >> > >> >> >> For the result, I would like to see a n x (r-1) matrix, where by each entry >> is the day-over-day return of each stock. >> >> >> >> I tried to look into the zoo package, however it seems to give only the >> > plots but not the actual data. >> > take a look at > vignette("zoo-quickref",package="zoo") > It gives an exact solution to your problem > > > >> >> >> >> Would apply function work in this case? >> >> >> >> Thanks a lot! >> >> >>         [[alternative HTML version deleted]] >> >> ______________________________________________ >> [hidden email] 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. >> > > [[alternative HTML version deleted]] > > ______________________________________________ > [hidden email] 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. > -- Patrick Burns [hidden email] http://www.burns-stat.com(home of 'Some hints for the R beginner' and 'The R Inferno') ______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

## Re: Computing day-over-day log return for a matrix containing multiple time series

 In reply to this post by Anyi Zhu You can use diff.zoo like this: library(zoo) z <- zoo(matrix(1:24, 6)) z diff(log(z)) # also try diff(z, arith = FALSE)  - 1 See ?diff.zoo and read the three zoo vignettes (pdf documents): vignette(package = "zoo") # lists them vignette("zoo") etc. On Sun, Jun 6, 2010 at 11:11 PM, Anyi Zhu <[hidden email]> wrote: > Hi all, > > > > Thanks a lot for anyone's help in advance. > > > > I am trying to find a way to compute the day-to-day return (log return) from > a n x r matrix containing, n different stocks and price quotes over r days. > The time series of prices are already split by using unstack function. > > > > For the result, I would like to see a n x (r-1) matrix, where by each entry > is the day-over-day return of each stock. > > > > I tried to look into the zoo package, however it seems to give only the > plots but not the actual data. > > > > Would apply function work in this case? > > > > Thanks a lot! > > >        [[alternative HTML version deleted]] > > ______________________________________________ > [hidden email] 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. > ______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

## Re: Computing day-over-day log return for a matrix containing multiple time series

 In reply to this post by sayan dasgupta Thanks a lot Sayan, I'll give it a try and let you know how it goes.       From: sayan dasgupta [mailto:[hidden email]] Sent: June-07-10 2:13 AM To: [hidden email] Cc: [hidden email] Subject: Re: [R] Computing day-over-day log return for a matrix containing multiple time series   Hope this helps a <- matrix(runif(150),nrow=3,ncol=50) p2r <- function(x) 100 * diff(log(x))  t(apply(a,1,function(x){p2r(c(x))})) On Mon, Jun 7, 2010 at 8:41 AM, Anyi Zhu <[hidden email]> wrote: Hi all, Thanks a lot for anyone's help in advance. I am trying to find a way to compute the day-to-day return (log return) from a n x r matrix containing, n different stocks and price quotes over r days. The time series of prices are already split by using unstack function. For the result, I would like to see a n x (r-1) matrix, where by each entry is the day-over-day return of each stock. I tried to look into the zoo package, however it seems to give only the plots but not the actual data. take a look at vignette("zoo-quickref",package="zoo") It gives an exact solution to your problem   Would apply function work in this case? Thanks a lot!        [[alternative HTML version deleted]] ______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.           [[alternative HTML version deleted]] ______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.