2017-08-18 48 views
-1

我有时间的一系列事件:现在这种情况发生在同一时间为一个事件定义事件

time <-c("01-01-1970","01-01-1971","01-01-1971","01-01-1972") 
event <-c("A","A","B","B") 

df <- data.frame(time, event) 

time event 
1 01-01-1970  A 
2 01-01-1971  A 
3 01-01-1971  B 
4 01-01-1972  B 

,我希望把所发生的事件在同一时间在同一行。在我的例子,这将是行2和3的结果应该是这样的:

时间事件

1 01-01-1970  A 
2 01-01-1971  A & B 
4 01-01-1972  B 

任何想法如何做到这一点?

最佳, 费利克斯

+1

由检查组和'paste'即'骨料(事件〜时间,DF1,FUN =糊状,崩溃= “&” )' – akrun

+1

在'data.table方式'它会是:'setDT(df)[,。(new_col = paste0(event,collapse =“&”)),by = time]' –

回答

2

您可以使用集合:

aggregate(df$event,by=list(df$time),FUN= paste,collapse = " & ") 
相关问题