Как я могу объединить данные в одну строку в моем tibble?

#r #dplyr

#r #dplyr

Вопрос:

Текущий код:

 ROW_tidy <- data %>%
  group_by(year, country) %>%
  summarize("Suicides Per 100K Population" = (sum(suicides_no)/sum(population)) * 100000) 
  

Который создает этот Tibble (только первые 3 строки):

     year    country             Suicides Per 100K Population
    1985    Antigua and Barbuda 0.00000000
    1985    Argentina           7.33828458
    1985    Australia          12.77939914 
  

Тем не менее, я хотел бы отредактировать этот tibble, чтобы он определял количество самоубийств в США на 100 тыс. населения и количество самоубийств в остальном мире на 100 тыс. населения (агрегируя / усредняя количество самоубийств во всех других странах на 100 тыс. населения) за каждый год. Как бы я это сделал?

Комментарии:

1. Пожалуйста, предоставьте некоторые игрушечные данные.

Ответ №1:

Прежде всего, вы можете сгруппировать по тому, является ли страна США или любой другой страной (в противном случае, я думаю, вы отправили бы искаженное сообщение, усредняя эти показатели без учета населения каждой страны).
Затем вы можете использовать tidyr::pivot_wider для создания столбцов для ваших строк данных:

 library(dplyr)
library(tidyr)

data %>%
  group_by(year, country_group = ifelse(country == "USA", "USA", "rest_of_world")) %>%
  summarize(suicides = (sum(suicides_no)/sum(population)) * 100000) %>%
  pivot_wider(names_from = country_group, values_from = suicides, names_prefix = "suicides_per100k_in_")