объединение информации из разных наборов данных - PullRequest
0 голосов
/ 04 мая 2020

Страны и континенты находятся в этом наборе данных.

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

#This data set contains countries and population information.

df8 <- read.csv ('https://raw.githubusercontent.com/hirenvadher954/Worldometers-Scraping/master/countries.csv')


library(dplyr)
library(stringr

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

df%>% left_join (df8, by = c (countryName = "country_name"))%>% error: Функция "%>%" не найдена выдает эту ошибку. Можете ли вы объяснить, почему и предоставить решение?

Как можно объединить континентальную информацию в наборе данных 1 с информацией о населении в наборе данных 2?

, например: Азия 2,8 миллиарда, Африка 800 миллионов, Европа 1 миллиард

1 Ответ

1 голос
/ 04 мая 2020

Здесь происходит несколько проблем:

1) страны считаются факторами, когда вы читаете данные с использованием read.csv; Вы можете решить это с помощью аргумента stringsAsFactors = FALSE

2) slice_tail, не уверенного, откуда это происходит; dplyr::slice что вы ищете?


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

#This data set contains countries and population information.

df8 <- read.csv ('https://raw.githubusercontent.com/hirenvadher954/Worldometers-Scraping/master/countries.csv',
                 stringsAsFactors = FALSE)


library(dplyr) 
library(stringr

        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
## # A tibble: 5 x 2
##   region   population
##   <chr>         <dbl>
## 1 Africa   1304908713
## 2 Americas 1019607512
## 3 Asia     4592311527
## 4 Europe    738083720
## 5 Oceania    40731992
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...