将数据帧的多行转换为一行,其中包含多个R列

时间:2017-03-21 19:00:35

标签: r dataframe data-structures pivot

我有一个包含四列的数据框:

df=data.frame( UserId=c(1,2,2,2,3,3), CatoId=c('C','A','B','C','D','E'), No=c(1,9,2,2,5,3))  

UserId CatoId No  
1       C     1  
2       A     9  
2       B     2  
2       C     2  
3       D     5  
3       E     3

我想将结构转换为以下结构:

UserId A B C D E  
  1    0 0 1 0 0  
  2    9 2 2 0 0 
  3    0 0 0 5 3

列中代表CatoId中所有可能的值。
第一个数据框有200万行,CatoId有21个不同的值。所以我不想使用任何循环。有没有办法用R来做到这一点。否则最好的方法是什么?
我的目标是在最后一个数据帧上应用聚类算法。

1 个答案:

答案 0 :(得分:0)

您可以使用forecast

执行此操作
dcast