[R] Reorganize data frame

Phil Spector spector at stat.berkeley.edu
Wed Mar 16 18:56:45 CET 2011


Here's one way:

>  ans = reshape(stock.returns,idvar='Date',
+                varying=list(names(stock.returns)[-1]),
+                direction='long',
+                times=names(stock.returns)[-1],
+                v.names='Return',timevar='Ticker')
> rownames(ans) = NULL
> ans
       Date Ticker Return
1 20110301   MSFT   0.05
2 20110302   MSFT   0.01
3 20110301   GOOG  -0.01
4 20110302   GOOG   0.04

 					- Phil Spector
 					 Statistical Computing Facility
 					 Department of Statistics
 					 UC Berkeley
 					 spector at stat.berkeley.edu



On Wed, 16 Mar 2011, chris99 wrote:

> Hi group,
>
> I am trying to convert the organization of a data frame so I can do some
> correlations between stocks,
>
> I have something like this:
>
> stock.returns <-
> data.frame(rbind(c("MSFT","20110301",0.05),c("MSFT","20110302",0.01),c("GOOG","20110301",-0.01),c("GOOG","20110302",0.04)))
> colnames(stock.returns) <- c("Ticker","Date","Return")
> stock.returns
>  Ticker     Date Return
> 1   MSFT 20110301   0.05
> 2   MSFT 20110302   0.01
> 3   GOOG 20110301  -0.01
> 4   GOOG 20110302   0.04
>
>
> And want to convert it to this:
>
> stock.returns <-
> data.frame(rbind(c("20110301",0.05,-0.01),c("20110302",0.01,0.04)))
> colnames(stock.returns) <- c("Date","MSFT","GOOG")
> stock.returns
>      Date MSFT  GOOG
> 1 20110301 0.05 -0.01
> 2 20110302 0.01  0.04
>
>
> Can anyone offer any suggestions?
>
> Thanks,
> Chris
>
> --
> View this message in context: http://r.789695.n4.nabble.com/Reorganize-data-frame-tp3381929p3381929.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> 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