数据列表到数据矩阵matlab/R.

use*_*231 4 matlab r matrix data-structures

我有一个数据矩阵,看起来像:

date ticker return

2/1  MSFT   .21

2/1  GOOG   .11

2/1  CSCO   .09

2/2  MSFT   .22

2/2  GOOG   .19

2/2  CSCO   .15
Run Code Online (Sandbox Code Playgroud)

我想将结构转移到类似的东西:

     MSFT   GOOG  CSCO

2/1  .21    .11   .09

2/2  .22    .19   .15
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以在Matlab/R中进行这种传输,而不是运行循环来获得这个?

Cha*_*ase 5

你可以使用这个reshape2库:

library(reshape2)

#sample data
dat <- data.frame(
    date = rep(c("2/1", "2/2"), each = 3)
  , ticker = rep(c("MSFT", "GOOG", "CSCO"), 2)
  , return = runif(6)
)

#Cast the data 
> dcast(dat, date ~ ticker, value_var = "return")

  date      CSCO      GOOG       MSFT
1  2/1 0.2555900 0.6212102 0.43078011
2  2/2 0.7092036 0.7013563 0.01225488
Run Code Online (Sandbox Code Playgroud)