【发布时间】:2019-06-06 03:06:54
【问题描述】:
我的代码
df <- df %>% group_by(user_id, groupInsideUID = cumsum(time)) %>%
mutate(Rank = ifelse(row_number() == 1, 'New','Repeat'))
我的数据框示例如下所示:
id user_id groupInsideUID time Rank
30 11 0 NA New
31 11 1 2/1/19 7:35 PM New
54 5 1 3/1/18 2:35 PM New
322 5 2 7/3/18 2:50 PM New
21 5 2 NA Repeat
13 5 3 8/3/18 2:50 PM New
2445 2 0 NA New
111 2 0 NA Repeat
287 2 1 5/3/18 2:50 PM New
221 14 0 NA New
2345 7 0 NA New
我想根据最短时间在每个 user_id 组中创建一个新列 Rank (New and Repeat)。在每个 user_id 组中,任何 id 在最短时间之前都有一个时间应该是 New(包括 NA),并且在最短时间之后会重复(包括 NA)。
结果应该是这样的:
id user_id time Rank
30 11 NA New
31 11 2/1/19 7:35 PM New
54 5 3/1/18 2:35 PM New
322 5 7/3/18 2:50 PM Repeat
21 5 NA Repeat
13 5 8/3/18 2:50 PM Repeat
2445 2 NA New
111 2 NA New
287 2 5/3/18 2:50 PM New
221 14 NA New
2345 7 NA New
感谢任何提示!
【问题讨论】:
标签: r dataframe datetime dplyr rank