根据指标值重新组合数据

时间:2016-04-26 03:40:03

标签: r transform

我有一个包含两列的数据框,如下所示,

   Name                Indicator
   DeAngelo Williams   1
   Marcus Brown        1
   Elaine Nelson       2
   Steve Olson         3
   Jennifer Carter     1
   Michael Johnson     2
   Angela Brawley      3
   Dax   Shepard       4

我要做的是组合指标列值为1的所有名称,直到遇到下一个值1,最终输出应如下所示。

          Name 
          -------               
          DeAngelo Williams   
          Marcus Brown,Elaine Nelson,Steve Olson
          Jennifer Carter, Michael Johnson, Angela Brawley, Dax Shepard  

我无法想到这个问题的解决方案,所以非常感谢任何有关实现这一目标的帮助。

1 个答案:

答案 0 :(得分:2)

我们可以使用aggregate中的base R来执行此操作。正如@thelatemail在评论中提到的,通过使用公式方法对逻辑向量Indicator==1的累积总和创建一个组,我们paste将“名称”中的元素组合在一起。

aggregate(Name~cbind(Group=cumsum(Indicator==1)), df1, FUN=toString)[2]
相关问题