最佳答案
这可以使用 data.table
在一行中完成。
library(data.table)
dt <- data.table(id_num = rep(1:3, 4), event = paste0("E", 1:12))
# id_num event
# 1: 1 E1
# 2: 2 E2
# 3: 3 E3
# 4: 1 E4
# 5: 2 E5
# 6: 3 E6
# 7: 1 E7
# 8: 2 E8
# 9: 3 E9
# 10: 1 E10
# 11: 2 E11
# 12: 3 E12
dt[, .(event_1 = .SD[(.N-1), event], event_2 = .SD[.N, event]), by = id_num]
# id_num event_1 event_2
# 1: 1 E7 E10
# 2: 2 E8 E11
# 3: 3 E9 E12
关于r - 获取某个id的最后两个事件并进行排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45253664/