Рассмотрим
a = data.frame(order = runif(1e7), id = sample(1000, 1e7, replace=TRUE), num = runif(1e7))
Я хочу вычислить max
группы num
led 1 в n
строк по id
.
Например, в dplyr Я могу сделать ниже, чтобы вычислить максимальное количество отведений 1, 2, 3 строк
library(dplyr)
a2 = a %>%
group_by(id) %>%
arrange(order) %>%
mutate(max_num = pmax(lead(num, 1), lead(num, 2), lead(num, 3), na.rm=T)) %>%
ungroup(id) %>%
arrange(id, order)
Но это кажется действительно неэффективным и требует большого набора текста (для больших n
). Есть ли более элегантный и эффективный способ добиться этого?