重塑表的性能

Rod*_*eis 2 r reshape tapply reshape2

我怎样才能从这样的表格中走出来:

  ID  Day  car_id value
  1   1    1      0
  1   1    2      4
  1   2    1      1
  1   3    2      0
  2   1    3      0
  2   2    3      2
  2   3    3      0
  ...
Run Code Online (Sandbox Code Playgroud)

对于这样的人?我尝试过使用reshape2包中的dcast.它运行正常,但由于数据集非常大,因此速度有点慢.还有另一种方法可以更快地完成吗?

  ID  Day  c_id1 c_id2 c_id3 
  1   1    0      4    0   
  1   2    1      0    0
  1   3    0      0    0
  2   1    0      0    0
  2   2    0      0    3
  2   3    0      0    0
Run Code Online (Sandbox Code Playgroud)

谢谢!

And*_*rie 6

reshape()基数R中的函数非常快,代价是难以理解参数的含义.

reshape(dat, idvar=c("ID", "Day"), timevar="car_id", direction="wide")
  ID Day value.1 value.2 value.3
1  1   1       0       4      NA
3  1   2       1      NA      NA
4  1   3      NA       0      NA
5  2   1      NA      NA       0
6  2   2      NA      NA       2
7  2   3      NA      NA       0
Run Code Online (Sandbox Code Playgroud)