简体   繁体   English

从data.table聚合(R语言)

[英]Aggregation from data.table (R language)

I have a data table myTable like this(input): 我有一个数据表myTable像这样(输入):

user_id    timestamp  event_id

1 Ann      11115555   Level1Start
2 Serg     11113333   Level1Start
3 Ann      11117777   Level1Complete
4 Ann      11116666   Level1Complete
5 Ann      11112222   Level1Start

I need to add the column named timeInLevel and calculate time between first two logs Level1Start and Level1Complete. 我需要添加名为timeInLevel的列并计算前两个日志Level1Start和Level1Complete之间的时间。

Output: 输出:

user_id    timestamp  event_id         TimeInLevel

1 Ann      11115555   Level1Start      4444
2 Serg     11113333   Level1Start      NA
3 Ann      11117777   Level1Complete   4444
4 Ann      11116666   Level1Complete   4444
5 Ann      11112222   Level1Start      4444

THX for help!!! THX寻求帮助!!!

Perhaps something like this using data.table syntax: 也许使用data.table语法是这样的:

dt[, TimeInterval := min(timestamp[event_id == "Level1Complete"]) - 
     min(timestamp[event_id == "Level1Start"]), by = user_id]
#   user_id timestamp       event_id TimeInterval
#1:     Ann  11115555    Level1Start         4444
#2:    Serg  11113333    Level1Start           NA
#3:     Ann  11117777 Level1Complete         4444
#4:     Ann  11116666 Level1Complete         4444
#5:     Ann  11112222    Level1Start         4444

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM