У меня есть немного кода в R:
library(dplyr)
df_temp <- df %>%
group_by(policy_number, policy_year) %>%
summarise(term_start_date = last(term_start_date),
term_end_date = last(term_end_date),
on_cover_after = last(on_cover_after),
termination_code = last(termination_code),
termination_date = last(termination_date))
Основная таблица df
составляет около 700 000 строк на 130 столбцов. Сгруппированные по policy_number
и policy_year
насчитывают около 300 000 (policy_number
/ policy_year
) группировок.
4 из 5 столбцов, на которые я ссылался в last()
, - это даты.
Этот запрос занимает около 3 минут, что неприятно, потому что остальная часть моего кода выполняется довольно быстро. Я надеюсь ускорить это. Могу ли я попробовать что-нибудь, что могло бы помочь, пожалуйста?
(в идеале, я бы предоставил представительство, но как мне здесь это сделать? Не уверен)
Спасибо.
Редактировать : так как я всегда использую последнюю запись для данной пары (policy_number
/ policy_year
), есть ли какой-нибудь код, который я мог бы написать в следующих строках:
df_temp <- df %>%
group_by(policy_number, policy_year) %>%
mutate(counter = 1:n()) %>%
filter(counter == max(counter)) %>%
select(term_start_date,
term_end_date,
on_cover_after,
termination_code,
termination_date)
?