수색…


소개

데이터를 R 세션으로 직접 가져옵니다. R의 좋은 특징 중 하나는 데이터 수집의 용이성입니다. R 패키지를 사용하는 데이터 유포에는 여러 가지 방법이 있습니다.

내장 데이터 세트

R 에는 방대한 데이터 세트가 내장되어 있습니다. 일반적으로 빠르고 쉽게 재현 할 수있는 예제를 만들기 위해 교육 목적으로 사용됩니다. 기본 제공 데이터 세트를 나열하는 멋진 웹 페이지가 있습니다.

https://vincentarelbundock.github.io/Rdatasets/datasets.html


스위스 비옥도 및 사회 경제적 지표 (1888) 데이터. 가톨릭 인구의 풍습과 지배력을 토대로 다산의 차이를 확인해 봅시다.

library(tidyverse) 

swiss %>% 
        ggplot(aes(x = Agriculture, y = Fertility, 
                   color = Catholic > 50))+
        geom_point()+
        stat_ellipse()

붙박이

패키지 내의 데이터 세트

데이터를 포함하거나 데이터 세트를 보급하기 위해 특별히 생성 된 패키지가 있습니다. 그러한 패키지가로드되면 ( library(pkg) ), 첨부 된 데이터 세트는 R 객체로 사용할 수있게됩니다. 또는 data() 함수를 사용하여 호출해야합니다.


Gapminder

국가 발전에 관한 좋은 데이터 세트.

library(tidyverse)
library(gapminder)

gapminder %>% 
        ggplot(aes(x = year, y = lifeExp, 
                   color = continent))+
        geom_jitter(size = 1, alpha = .2, width = .75)+
        stat_summary(geom = "path", fun.y = mean, size = 1)+
        theme_minimal()

갭 마이너


세계 인구 전망 2015 - 유엔 인구 부서

1950 ~ 2015 년 동안 출생시 남성의 기대 여명에 세계가 어떻게 수렴했는지 봅시다.

library(tidyverse)
library(forcats)
library(wpp2015)
library(ggjoy)
library(viridis)
library(extrafont)

data(UNlocations)

countries <- UNlocations %>% 
        filter(location_type == 4) %>% 
        transmute(name = name %>% paste()) %>% 
        as_vector()

data(e0M) 

e0M %>% 
        filter(country %in% countries) %>% 
        select(-last.observed) %>% 
        gather(period, value, 3:15) %>% 
        ggplot(aes(x = value, y = period %>% fct_rev()))+
        geom_joy(aes(fill = period))+
        scale_fill_viridis(discrete = T, option = "B", direction = -1, 
                           begin = .1, end = .9)+
        labs(x = "Male life expectancy at birth",
             y = "Period",
             title = "The world convergence in male life expectancy at birth since 1950",
             subtitle = "Data: UNPD World Population Prospects 2015 Revision",
             caption = "ikashnitsky.github.io")+
        theme_minimal(base_family =  "Roboto Condensed", base_size = 15)+
        theme(legend.position = "none")

wpp-2015

열린 데이터베이스에 액세스하기위한 패키지

특정 데이터베이스에 액세스하기 위해 특별히 많은 패키지가 만들어집니다. 그것들을 사용하면 데이터 읽기 / 포매팅에 많은 시간을 절약 할 수 있습니다.


유로 스타트

eurostat 패키지에는 search_eurostat() 함수가 있지만 사용 가능한 모든 관련 데이터 세트를 찾지 못합니다. Eurostat 웹 사이트 ( 국가 데이터베이스 또는 지역 데이터베이스) 에서 수동으로 데이터 세트의 코드를 탐색하는 것이 더 편리합니다. 자동 다운로드가 작동하지 않으면 Bulk Download Facility 를 통해 수동으로 데이터를 가져올 수 있습니다.

library(tidyverse)
library(lubridate)
library(forcats)
library(eurostat)
library(geofacet)
library(viridis)
library(ggthemes)
library(extrafont)

# download NEET data for countries
neet <- get_eurostat("edat_lfse_22")

neet %>% 
        filter(geo %>% paste %>% nchar == 2,
               sex == "T", age == "Y18-24") %>%
        group_by(geo) %>% 
        mutate(avg = values %>% mean()) %>% 
        ungroup() %>% 
        ggplot(aes(x = time %>% year(),
                   y = values))+
        geom_path(aes(group = 1))+
        geom_point(aes(fill = values), pch = 21)+
        scale_x_continuous(breaks = seq(2000, 2015, 5),
                           labels = c("2000", "'05", "'10", "'15"))+
        scale_y_continuous(expand = c(0, 0), limits = c(0, 40))+
        scale_fill_viridis("NEET, %", option = "B")+
        facet_geo(~ geo, grid = "eu_grid1")+
        labs(x = "Year",
             y = "NEET, %",
             title = "Young people neither in employment nor in education and training in Europe",
             subtitle = "Data: Eurostat Regional Database, 2000-2016",
             caption = "ikashnitsky.github.io")+
        theme_few(base_family =  "Roboto Condensed", base_size = 15)+
        theme(axis.text = element_text(size = 10),
              panel.spacing.x = unit(1, "lines"),
              legend.position = c(0, 0),
              legend.justification = c(0, 0))

유로 스타트

제한된 데이터에 액세스하는 패키지

인간 사망률 데이터베이스

인간 사망 데이터베이스 (Human Mortality Database)인구 통계 학적 연구위한 Max Planck 연구소 의 프로젝트로, 통계 수치의 신뢰성이 다소 높은 국가의 인명 피해 데이터를 수집하고 사전 처리합니다.

# load required packages
library(tidyverse) 
library(extrafont)
library(HMDHFDplus)

country <- getHMDcountries()

exposures <- list()
for (i in 1: length(country)) {
        cnt <- country[i]
        exposures[[cnt]] <- readHMDweb(cnt, "Exposures_1x1", user_hmd, pass_hmd)
        # let's print the progress
        paste(i,'out of',length(country)) 
} # this will take quite a lot of time

인수 user_hmdpass_hmd 는 Human Mortality Database 웹 사이트의 로그인 자격 증명입니다. 데이터에 액세스하려면 http://www.mortality.org/ 에서 계정을 만들고 자신의 자격 증명을 readHMDweb() 함수에 제공해야합니다.

sr_age <- list()

for (i in 1:length(exposures)) {
        di <- exposures[[i]]
        sr_agei <- di %>% select(Year,Age,Female,Male) %>% 
                filter(Year %in% 2012) %>%
                select(-Year) %>%
                transmute(country = names(exposures)[i],
                          age = Age, sr_age = Male / Female * 100)
        sr_age[[i]] <- sr_agei
}
sr_age <- bind_rows(sr_age)

# remove optional populations
sr_age <- sr_age %>% filter(!country %in% c("FRACNP","DEUTE","DEUTW","GBRCENW","GBR_NP"))

# summarize all ages older than 90 (too jerky)
sr_age_90 <- sr_age %>% filter(age %in% 90:110) %>% 
        group_by(country) %>% summarise(sr_age = mean(sr_age, na.rm = T)) %>%
        ungroup() %>% transmute(country, age=90, sr_age)

df_plot <- bind_rows(sr_age %>% filter(!age %in% 90:110), sr_age_90)

# finaly - plot
df_plot %>% 
        ggplot(aes(age, sr_age, color = country, group = country))+
        geom_hline(yintercept = 100, color = 'grey50', size = 1)+
        geom_line(size = 1)+
        scale_y_continuous(limits = c(0, 120), expand = c(0, 0), breaks = seq(0, 120, 20))+
        scale_x_continuous(limits = c(0, 90), expand = c(0, 0), breaks = seq(0, 80, 20))+
        xlab('Age')+
        ylab('Sex ratio, males per 100 females')+
        facet_wrap(~country, ncol=6)+
        theme_minimal(base_family = "Roboto Condensed", base_size = 15)+
        theme(legend.position='none',
              panel.border = element_rect(size = .5, fill = NA))

hmd



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow