Я получил следующие data.frame:
country1 value1 country2 value2 country3 value3
2375 Other 43 Jordan 30 NA NA
2366 Other 89 Turkey 29 NA NA
4904 Turkey 50 Iraq 28 NA NA
4786 Jordan 20 Turkey 25 NA NA
5816 Jordan 7 Turkey 10 NA NA
2365 Lebanon 18 Other 9 NA NA
, где значение1, значение2 и значение3 не зависят друг от друга.
Я хочу в основном получить таблицу, обобщающую каждую страну и ее совокупную стоимость:
country total_value
1 Iraq 294
2 Jordan 993
3 Lebanon 1632
4 Other 167
5 Turkey 942
Я попробовал «грубый» подход, раздельно подставив три раза исходный data.frame, связав получившиеся подмножества, а затем сгруппировав и суммировав с помощью dplyr:
subset1 <- my_data %>% select(country = country1, value= value1)
subset2 <- my_data %>% select(country = country2, value = value2)
subset3 <- my_data %>% select(country = country3, value = value3)
subset_all <- bind_rows(subset1, subset2, subset3)
my_result <- subset_all %>% group_by(country) %>% summarise(total_value = sum(value, na.rm=TRUE))
Я бы хотел получить тот же результат более «изящным» способом. Я пробовал подходы, использующие либо «собрать» из dplyr, либо «расплавить» из data.table, но по какой-то причине я получаю немного более высокие цифры (полагаю, некоторые строки дублируются). Любое предложение о том, как улучшить этот код?). Спасибо за вашу помощь!