将多列多行转换为多列单行数据帧

时间:2017-03-17 01:32:42

标签: r

我在前言中说我已经在网上乱哄哄地尝试了几个不同的代码片段(基础R,dplyr,tidyr),但我无法完全达到我需要的位置。我有一个固定数量的数据框......

   client_id    question    brand_id
      2           101          7
      7           101          4
      7           101          97
      7           101          5
      7           101          10
      7           101          97
      7           101          14
      7           101           7
      9           101           6
      9           101          97
      9           101          16
      9           101           2
      9           101           7

......我需要转变为......

 client_id question bid1 bid2 bid3 bid4 bid5 bid6 bid7
   2         101     7                      
   7         101     4    97   5    10   97   14    7
   9         101     6    97   16    2    7     

...每行可以有不同数量的列但不会超过12列。非常感谢社区援助!

1 个答案:

答案 0 :(得分:0)

如果您将数据作为data.table:

dcast(temp[,.(paste0("bid",1:(.N)), question,brand_id),
           by=client_id], ...~V1)

也许有一种更简单的方法。