我怎样才能从这样的表格中走出来:
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
...
对于这样的人?我尝试过使用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
谢谢!
答案 0 :(得分:6)
基数R中的函数reshape()
非常快,但代价是难以理解参数的含义。
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
答案 1 :(得分:0)
另一种方法是使用reshape2包中的dcast函数。
dcast(dat, ID + Day ~ car_id, value.var = 'value')