• R语言
  • 求助:关于Reshape2包中acast()

数据结构用dcast()处理完是这样的

user_id brand_id visit_days type

1 19500 2257 85 1

2 19500 4949 85 1

3 19500 5086 80 5

4 19500 5086 83 1

5 19500 6148 85 2

6 19500 6148 86 1

希望得到的数据是类似这样的

user_id brand_id 80 81 82 83 84 85 .... 100

1 19500 2257 0 0 0 0 1 0

2 19500 4949 0 0 0 0 1 0

3 19500 5086 5 0 1 0 1 0

我想acast可以做,但是折腾了好几个小时了,实在得不到合适的结果。

感谢各位了

like this?

<br />
> dat <- read.table("clipboard",as.is=T)<br />
> dat<br />
  user_id brand_id visit_days type<br />
1   19500     2257         85    1<br />
2   19500     4949         85    1<br />
3   19500     5086         80    5<br />
4   19500     5086         83    1<br />
5   19500     6148         85    2<br />
6   19500     6148         86    1<br />
> dat.m <- melt(dat, id.var=c("user_id", "brand_id", "visit_days"), measure.var=c("type"))<br />
> dat.m<br />
  user_id brand_id visit_days variable value<br />
1   19500     2257         85     type     1<br />
2   19500     4949         85     type     1<br />
3   19500     5086         80     type     5<br />
4   19500     5086         83     type     1<br />
5   19500     6148         85     type     2<br />
6   19500     6148         86     type     1<br />
> dat.c <- cast(dat.m, user_id + brand_id + variable ~ visit_days)<br />
> dat.c<br />
  user_id brand_id variable 80 83 85 86<br />
1   19500     2257     type NA NA  1 NA<br />
2   19500     4949     type NA NA  1 NA<br />
3   19500     5086     type  5  1 NA NA<br />
4   19500     6148     type NA NA  2  1<br />
</p>

回复 第2楼 的 YSU:

Thanks a lot!