Передача данных между наборами данных - PullRequest
0 голосов
/ 05 мая 2020
• 1000

В df4 я распечатал общее количество смертей по континентам.

Я также нашел информацию о населении континентов.

Моя проблема состоит в том, чтобы разделить данные о новых случаях (вчерашняя смерть) на континенты. пропорция к численности населения, записанная в df8.

df <- read.csv ('https://raw.githubusercontent.com/ulklc/covid19- 
 timeseries/master/countryReport/raw/rawReport.csv',
        stringsAsFactors = FALSE)

yesterday <- function() Sys.Date() - 1L
yesterday()
df1 <- aggregate(death ~ countryName, subset(df, day == yesterday()), sum)
df8 <- read.csv ('https://raw.githubusercontent.com/hirenvadher954/Worldometers-                      
     Scraping/master/countries.csv',
             stringsAsFactors = FALSE)

 df4 <- aggregate(death ~ region, subset(df), sum)


  library(tidyverse)

      df %>% 
      left_join(df8, by = c("countryName" = "country_name")) %>% 
      mutate(population = as.numeric(str_remove_all(population, ","))) %>% 
      group_by(countryName) %>%
      slice(1) %>%
      group_by(region) %>% 
      summarize(population = sum(population, na.rm = TRUE))

В базе данных df есть информация о странах и континентах для случаев заболевания covid-19.

Набор данных df8 содержит информацию о населении.

df1 также обратился вчера, чтобы узнать о новом количестве случаев в стране.

В df4 я напечатал общее количество смертей по континентам.

Я также нашел информацию о населении континентов.

Моя задача - разделить данные о новых случаях (вчерашней смерти) по континентам. доля населения, записанная в df8.

на выходе

уровень смертности населения региона

африка 234 523452656 86/44545

америка 24562 4123548621 15 / 4453284. . .

1 Ответ

0 голосов
/ 05 мая 2020

Некоторые из ваших ожидаемых значений далеко. Например, население Америки составляет около 1 миллиард человек , а не 4 миллиарда. Африка тоже примерно 1,2 миллиарда , а не 5 миллиардов.

df %>% 
  left_join(df8, by = c("countryName" = "country_name")) %>% 
  mutate(population = as.numeric(str_remove_all(population, ","))) %>% 
  group_by(countryName) %>% 
  filter(day == yesterday()) %>% 
  group_by(region) %>% 
  unique() %>% 
  summarize(population = sum(population, na.rm = TRUE),
            death = sum(death, na.rm = TRUE),
            prop = paste0(as.character(death), "/", as.character(population)))
# A tibble: 5 x 4
  region   population  death prop            
  <chr>         <dbl>  <int> <chr>           
1 Africa   1304908713   1842 1842/1304908713 
2 Americas 1019607512  87805 87805/1019607512
3 Asia     4601849172  20027 20027/4601849172
4 Europe    738083720 142158 142158/738083720
5 Oceania    40731992    115 115/40731992 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...