У меня есть таблица данных, dt
, которая выглядит как
location year value
NYC 2026 1
NYC 2026 2
NYC 2026 3
NYC 2026 4
NYC 2026 5
LA 2026 6
LA 2026 7
LA 2026 8
LA 2026 9
LA 2026 10
Я бы хотел сгруппировать их по city
и year
и найти 2-й наименьший элемент в столбце value
для каждой группы, где желаемый результат выглядит следующим образом:
location year value
NYC 2026 2
LA 2026 7
dt %>% grou_by(location, year) %>% nth(value, 2)
Не будет работать.Любая помощь приветствуется.
Приведенную выше таблицу данных можно создать:
dt <- structure(list(location = c("NYC", "NYC", "NYC","NYC", "NYC",
"LA", "LA", "LA", "LA", "LA"),
year = c(2026, 2026, 2026, 2026, 2026,
2026, 2026, 2026, 2026, 2026),
value = c(1, 2, 3, 4, 5,
6, 7, 8, 9, 10)),
class = "data.table",
row.names = c(NA, -10L))