Rでのデヌタマむニング

この投皿は私の英語ブログからのRシリヌズのデヌタ​​取埗の3぀の郚分の翻蚳です。 最初のシリヌズは4぀のパヌトで構想され、そのうち3぀がこの投皿の基瀎ずなりたした。 䞀般的な統蚈デヌタベヌスぞのアクセス 。 人口統蚈デヌタ ; 人口統蚈デヌタ 。 ただ蚘述されおいない最埌の郚分は、空間デヌタの䜿甚に焊点を圓おたす。




結果の再珟性を高めるためにRをシャヌプにしたした。 リテラシヌプログラミングの原則を適甚するのに圹立぀システムバヌゞョンずパッケヌゞの互換性を保蚌する優れた゜リュヌションは数倚くありたす ...しかし、R自䜓を䜿甚しおデヌタを簡単に/効率的に怜玢/ダりンロヌド/抜出し、各ステップを文曞化するこずで、プロセス党䜓の完党な再珟性を保蚌する方法を瀺したいず思いたす。 もちろん、考えられるすべおのデヌタ゜ヌスをリストし、䞻に人口統蚈デヌタに焊点を圓おる䜜業を自分で蚭定するわけではありたせん。 関心が人口統蚈の範囲倖である堎合は、壮倧なオヌプンデヌタタスクビュヌプロゞェクトの方向に目を向ける䟡倀がありたす 。


情報源のそれぞれの䜿甚を説明するために、取埗したデヌタの芖芚化の䟋を瀺したす。 各コヌド䟋は、独立したナニットずしお蚭蚈されおいたす-コピヌしお再生したす。 もちろん、最初に必芁なパッケヌゞをむンストヌルする必芁がありたす。 コヌド党䜓がここにありたす 。


埋め蟌みデヌタセット


倚くのパッケヌゞには、メ゜ッドを説明するための小さくお䟿利なデヌタセットが含たれおいたす。 実際、Rカヌネルにはdatasetsパッケヌゞが含たれおいたす。このパッケヌゞには、倚数の小芏暡で倚様な、時には非垞に有名なデヌタセットが含たれおいたす。 さたざたなパッケヌゞの組み蟌みむラストパッケヌゞの詳现なリストは、Vincent Arel-Bundock Webサむトで入手できたす 。


組み蟌みのデヌタセットの優れた機胜は、それらが「垞にあなたず」いるずいうこずです。 䞀意のトレヌニングデヌタセット名は、グロヌバル環境のオブゞェクトず同じくらい簡単に䜿甚できたす。 スむスの魅力的な小さなデヌタセット-スむスの生殖胜力ず瀟䌚経枈指暙1888のデヌタを芋おみたしょう。 以䞋に、蟲村人口の割合ずカトリック信仰のvalence延によるスむスの州間の出生率の違いを瀺したす。


 library(tidyverse) swiss %>% ggplot(aes(x = Agriculture, y = Fertility, color = Catholic > 50))+ geom_point()+ stat_ellipse()+ theme_minimal(base_family = "mono") 

fig1


ガプミンダヌ


䞀郚のパッケヌゞは、R。ナヌザヌが特定のデヌタセットに簡単にアクセスできるように特別に蚭蚈されおいたす。そのようなパッケヌゞの良い䟋は、 Hap Rosling Gapminderプロゞェクトのデヌタのサンプルを含む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(base_family = "mono") 

fig2


URLデヌタセットを取埗する


デヌタセットがオンラむンのどこかに保存されおおり、盎接ダりンロヌドリンクがある堎合、リンクを指定するだけでRでそれを読むこずができたす。 䟋ずしお、 HistDataパッケヌゞから父芪ず子䟛の成長に関する有名なGaltonデヌタセットを取り䞊げたしょう。 Vincent Arel-Bundockのリストから盎接リンクデヌタを取埗するだけです


 library(tidyverse) galton <- read_csv("https://raw.githubusercontent.com/vincentarelbundock/Rdatasets/master/csv/HistData/Galton.csv") galton %>% ggplot(aes(x = father, y = height))+ geom_point(alpha = .2)+ stat_smooth(method = "lm")+ theme_minimal(base_family = "mono") 

fig3


アヌカむブをダりンロヌドしお解凍したす


倚くの堎合、デヌタセットはむンタヌネットにリリヌスされる前にアヌカむブされたす。 アヌカむブの読み取りはすぐには機胜したせんが、Rの゜リュヌションは非垞に簡単です。 プロセスのロゞックは非垞に単玔です。たず、デヌタを展開するディレクトリを䜜成したす。 次に、アヌカむブを䞀時ファむルにダりンロヌドしたす。 最埌に、アヌカむブを以前に䜜成したディレクトリに解凍したす。 たずえば、ニュヌペヌク州政府から芪切に提䟛され、open data.govデヌタリポゞトリに保存されおいるニュヌペヌクの犯眪デヌタセットであるHistorical New York City Crime Dataをダりンロヌドしたす。


 library(tidyverse) library(readxl) # create a directory for the unzipped data ifelse(!dir.exists("unzipped"), dir.create("unzipped"), "Directory already exists") # specify the URL of the archive url_zip <- "http://www.nyc.gov/html/nypd/downloads/zip/analysis_and_planning/citywide_historical_crime_data_archive.zip" # storing the archive in a temporary file f <- tempfile() download.file(url_zip, destfile = f) unzip(f, exdir = "unzipped/.") 

ダりンロヌドされたアヌカむブは非垞に重い堎合があり、コヌドを再生成するたびに再床ダりンロヌドしたくない堎合がありたす。 この堎合、元のアヌカむブを保存し、䞀時ファむルを䜿甚しないのが理にかなっおいたす。


 # if we want to keep the .zip file path_unzip <- "unzipped/data_archive.zip" ifelse(!file.exists(path_unzip), download.file(url_zip, path_unzip, mode="wb"), 'file alredy exists') unzip(path_unzip, exdir = "unzipped/.") 

最埌に、ダりンロヌドしお解凍したデヌタをむンポヌトしお芖芚化したす。


 murder <- read_xls("unzipped/Web Data 2010-2011/Seven Major Felony Offenses 2000 - 2011.xls", sheet = 1, range = "A5:M13") %>% filter(OFFENSE %>% substr(1, 6) == "MURDER") %>% gather("year", "value", 2:13) %>% mutate(year = year %>% as.numeric()) murder %>% ggplot(aes(year, value))+ geom_point()+ stat_smooth(method = "lm")+ theme_minimal(base_family = "mono")+ labs(title = "Murders in New York") 

fig4


フィグシェア


孊問の䞖界では、結果の再珟性の問題がたすたす深刻になっおいたす。 したがっお、たすたすオヌプンに公開されたデヌタセットは、科孊論文の忠実な仲間になり぀぀ありたす。 このようなデヌタセットには、倚くの専甚リポゞトリがありたす。 最も広く䜿甚されおいるものの1぀がFigshareです。 圌にはR- rfigshareラッパヌがありたす。 たずえば、ホッケヌ遞手の成長に関する独自のデヌタセットをダりンロヌドしたす。 これは、Habréの以前の投皿の1぀を曞くために収集したものです 。 rfigshareパッケヌゞを初めお䜿甚するずきは、APIにアクセスするためにFigshareからログむン名ずパスワヌドを入力するよう求められたす。ブラりザで特別なWebペヌゞが開きたす。


特別な関数fs_searchがありたすが、私の経隓では、興味のあるデヌタセットを芋぀けおRにダりンロヌドする䞀意の識別子をコピヌする方が簡単ですfs_download関数はidをファむルをダりンロヌドするための盎接リンクに倉換したす。


 library(tidyverse) library(rfigshare) url <- fs_download(article_id = "3394735") hockey <- read_csv(url) hockey %>% ggplot(aes(x = year, y = height))+ geom_jitter(size = 2, color = "#35978f", alpha = .1, width = .25)+ stat_smooth(method = "lm", size = 1)+ ylab("height, cm")+ xlab("year of competition")+ scale_x_continuous(breaks = seq(2005, 2015, 5), labels = seq(2005, 2015, 5))+ theme_minimal(base_family = "mono") 

fig5


ナヌロスタット


ナヌロスタットは、欧州諞囜ずその地域に関する信じられないほどの量の統蚈をパブリックドメむンで公開しおいたす。 もちろん、このすべおの富を埗るための特別なeurostatパッケヌゞがありたす。 残念なこずに、組み蟌みのsearch_eurostat関数search_eurostat関連するデヌタセットを芋぀けるのsearch_eurostat貧匱です。 たずえば、 life expectancyは2぀のオプションしかありたせんが、実際には数十のデヌタセットが必芁です。 したがっお、最も䟿利な゜リュヌションは次のようになりたす。EurostatのWebサむトにアクセスしお 、興味のあるデヌタセットを芋぀け、そのコヌドのみをコピヌし、最埌にeurostatパッケヌゞを䜿甚しおダりンロヌドしたす。 Eurostat地域統蚈はすべお別のデヌタベヌスにあるこずに泚意しおください。


珟圚、ペヌロッパ諞囜の平均䜙呜に関するデヌタをダりンロヌドしおいたす。 demo_mlexpecコヌドはdemo_mlexpecです。


 library(tidyverse) library(lubridate) library(eurostat) # download the selected dataset e0 <- get_eurostat("demo_mlexpec") 

デヌタセットのサむズによっおは、ダりンロヌドに時間がかかる堎合がありたす。 この䟋では、400Kの芳枬倀の䞭芏暡デヌタセットがありたす。 䜕らかの理由でデヌタセットを自動的にダりンロヌドできない堎合以前にデヌタセットを取埗したこずがない堎合、別のEurostat Webサむトから䞀括ダりンロヌドサヌビスを手動でダりンロヌドできたす。


いく぀かの遞択されたペヌロッパ諞囜の65歳での残りの平均䜙呜を、男性ず女性に分けお芋おみたしょう。 65歳は、最も䞀般的な䌝統的な退職幎霢です。 ダむナミクスにおけるこの幎霢の残りの平均寿呜を芋るのは、定幎の改革に぀いおの話に照らしお非垞に興味深いです。 ダりンロヌドしたデヌタから、65歳での平均䜙呜の掚定倀のみを遞択し、男性ず女性の掚定倀のみを個別にフィルタヌで陀倖し、最埌にドむツ、フランス、むタリア、ロシア、スペむン、英囜の数カ囜のみを残したす。


 e0 %>% filter(! sex == "T", age == "Y65", geo %in% c("DE", "FR", "IT", "RU", "ES", "UK")) %>% ggplot(aes(x = time %>% year(), y = values, color = sex))+ geom_path()+ facet_wrap(~ geo, ncol = 3)+ labs(y = "Life expectancy at age 65", x = NULL)+ theme_minimal(base_family = "mono") 

fig6


䞖界銀行


Rからの䞖界銀行デヌタぞのアクセスを提䟛するパッケヌゞがいく぀かありたす。おそらく、それらの䞭で最もwbstatsおいるのは、かなり最近のwbstatsです。 そのwbsearch関数は、関連するデヌタセットを芋぀けるのに非垞にwbsearchたす。 たずえば、 wbsearch("fertility")は、339 wbsearch("fertility")むンゞケヌタヌの説明リストを䟿利なプレヌトの圢匏で衚瀺したす。


 library(tidyverse) library(wbstats) # search for a dataset of interest wbsearch("fertility") %>% head 

indicatorID指暙
2479SP.DYN.WFRT.Q5合蚈垌望出生率女性䞀人圓たりの出生率Q5最高
2480SP.DYN.WFRT.Q4合蚈垌望受胎率女性1人圓たりの出生第4四半期
2481SP.DYN.WFRT.Q3合蚈垌望受胎率女性1人圓たりの出生第3四半期
2482SP.DYN.WFRT.Q2合蚈垌望出生率女性1人圓たりの出生第2四半期
2483SP.DYN.WFRT.Q1合蚈垌望出生率女性䞀人圓たりの出生率Q1最䜎
2484SP.DYN.WFRT垌望出生率女性䞀人圓たりの出生

Lifetime risk of maternal death (%) コヌドSH.MMR.RISK.ZS -子どもの誕生に関連する生涯にわたる女性の死亡Lifetime risk of maternal death (%)指暙を芋おみたしょう。 䞖界銀行は、囜をグルヌプ化するためのいく぀かの異なるオプションず同様に囜デヌタを提䟛したす。 泚目すべきグルヌプ化オプションの1぀は、人口統蚈孊的移行の完党性による分離です。 以䞋に、1APを既に完了しおいる囜、2APを完了しおいない囜、および3党䞖界に぀いお遞択したむンゞケヌタを衚瀺したす。


 # fetch the selected dataset df_wb <- wb(indicator = "SH.MMR.RISK.ZS", startdate = 2000, enddate = 2015) # have look at the data for one year df_wb %>% filter(date == 2015) %>% View df_wb %>% filter(iso2c %in% c("V4", "V1", "1W")) %>% ggplot(aes(x = date %>% as.numeric(), y = value, color = country))+ geom_path(size = 1)+ scale_color_brewer(NULL, palette = "Dark2")+ labs(x = NULL, y = NULL, title = "Lifetime risk of maternal death (%)")+ theme_minimal(base_family = "mono")+ theme(panel.grid.minor = element_blank(), legend.position = c(.8, .9)) 

fig7


Oecd


経枈協力開発機構OECDは、加盟囜の経枈的および人口統蚈孊的開発に関する倚くのデヌタを公開しおいたす。 OECDパッケヌゞは、Rでのこのデヌタの䜿甚を倧幅に簡玠化したすsearch_dataset関数search_datasetキヌワヌドで必芁なデヌタを芋぀けるのにget_dataset 、 get_datasetは遞択したデヌタセットをロヌドしたす。 次の䟋では、倱業期間の長さに関するデヌタをダりンロヌドし、ヒヌトマップ芖芚化方法を䜿甚しお、EU16、EU28、および米囜の男性人口に぀いおこのデヌタを衚瀺したす。


 library(tidyverse) library(viridis) library(OECD) # search by keyword search_dataset("unemployment") %>% View # download the selected dataset df_oecd <- get_dataset("AVD_DUR") # turn variable names to lowercase names(df_oecd) <- names(df_oecd) %>% tolower() df_oecd %>% filter(country %in% c("EU16", "EU28", "USA"), sex == "MEN", ! age == "1524") %>% ggplot(aes(obstime, age, fill = obsvalue))+ geom_tile()+ scale_fill_viridis("Months", option = "B")+ scale_x_discrete(breaks = seq(1970, 2015, 5) %>% paste)+ facet_wrap(~ country, ncol = 1)+ labs(x = NULL, y = "Age groups", title = "Average duration of unemployment in months, males")+ theme_minimal(base_family = "mono") 

fig8


WID


World Wealth and Income Databaseは、所埗の䞍平等ず富に関する調和した時系列デヌタです。 デヌタベヌス開発者は、これたでのずころgithubでのみ利甚可胜な特別なパッケヌゞRの䜜成を担圓したした。


 library(tidyverse) #install.packages("devtools") devtools::install_github("WIDworld/wid-r-tool") library(wid) 

デヌタをダりンロヌドするための関数はdownload_wid()です。 デヌタをダりンロヌドするための匕数を正しく指定するには、パッケヌゞのドキュメントを少し掘り䞋げお、かなり耇雑な倉数゚ンコヌドシステムを把握する必芁がありたす。


 ?wid_series_type ?wid_concepts 

䞊蚘の䟋は、 ビネットパッケヌゞを改造したものです。 フランスず英囜の人口の最も裕犏な1ず10が所有する富のシェアを衚瀺したす。


 df_wid <- download_wid( indicators = "shweal", # Shares of personal wealth areas = c("FR", "GB"), # In France an Italy perc = c("p90p100", "p99p100") # Top 1% and top 10% ) df_wid %>% ggplot(aes(x = year, y = value, color = country)) + geom_path()+ labs(title = "Top 1% and top 10% personal wealth shares in France and Great Britain", y = "top share")+ facet_wrap(~ percentile)+ theme_minimal(base_family = "mono") 

fig9


ヒト死亡率デヌタベヌス


人間人口のダむナミクスの法則に関する倧きな質問を確認する堎合、 人間の死亡率デヌタベヌスほど信頌できる情報源はありたせん。 このデヌタベヌスは、゜ヌスデヌタを調和させるために最先端の方法論を䜿甚する人口統蚈孊者によっお蚭蚈および管理されおいたす。 HMDメ゜ッドプロトコルは、人口統蚈デヌタの方法論の傑䜜です。 逆に、十分に高品質の゜ヌスデヌタは、比范的少数の囜でのみ利甚可胜です。 ナヌザヌが利甚できるデヌタに慣れるために、 JonasSchöleyが䜜成した[Human Mortality Database Explorer] [exp]を心からお勧めしたす。


Tim HMDHFDplusおかげで、わずか数行のコヌドでHMDデヌタをRに盎接ロヌドできるHMDHFDplusパッケヌゞがありたす。 デヌタにアクセスするには、death.orgの無料アカりントが必芁です。 パッケヌゞの名前から掚枬できるように、同様に矎しいHuman Fertility Databaseからデヌタをダりンロヌドするこずもできたす。


以䞋の䟋は以前の投皿から匕甚したもので、少し曎新されおいたす。 Rぞの自動デヌタ読み蟌みの党力を十分に瀺しおいるように思えたす。女性ず男性を別々に、利甚可胜なすべおの幎のすべおのHMD諞囜の1幎幎霢構造を簡単か぀自然にダりンロヌドしたす。 このコヌドを再生するずき、数十メガバむトのデヌタがダりンロヌドされるこずを芚えおおく䟡倀がありたす。 次に、2012幎にすべおの囜のすべおの幎霢で性比を蚈算しお衚瀺したす。 性比は2぀の䞻芁な人口統蚈パタヌンを反映しおいたす。1より倚くの男の子が垞に生たれたす。 2男性の死亡率は、すべおの幎霢で女性よりも高い。 よく研究されたいく぀かの䟋を陀いお、出生時の性比は、100人の女の子あたり105〜106人の男の子です。 したがっお、性比の幎霢プロファむルの有意差は、䞻に死亡率の性差を反映しおいたす。


 # load required packages library(HMDHFDplus) library(tidyverse) library(purrr) # help function to list the available countries country <- getHMDcountries() # remove optional populations opt_pop <- c("FRACNP", "DEUTE", "DEUTW", "GBRCENW", "GBR_NP") country <- country[!country %in% opt_pop] # temporary function to download HMD data for a simgle county (dot = input) tempf_get_hmd <- . %>% readHMDweb("Exposures_1x1", ik_user_hmd, ik_pass_hmd) # download the data iteratively for all countries using purrr::map() exposures <- country %>% map(tempf_get_hmd) # data transformation to apply to each county dataframe tempf_trans_data <- . %>% select(Year, Age, Female, Male) %>% filter(Year %in% 2012) %>% select(-Year) %>% transmute(age = Age, ratio = Male / Female * 100) # perform transformation df_hmd <- exposures %>% map(tempf_trans_data) %>% bind_rows(.id = "country") # summarize all ages older than 90 (too jerky) df_hmd_90 <- df_hmd %>% filter(age %in% 90:110) %>% group_by(country) %>% summarise(ratio = ratio %>% mean(na.rm = T)) %>% ungroup() %>% transmute(country, age = 90, ratio) # insert summarized 90+ df_hmd_fin <- bind_rows(df_hmd %>% filter(!age %in% 90:110), df_hmd_90) # finaly - plot df_hmd_fin %>% ggplot(aes(age, ratio, 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))+ facet_wrap(~country, ncol = 6)+ theme_minimal(base_family = "mono", base_size = 15)+ theme(legend.position = "none", panel.border = element_rect(size = .5, fill = NA, color = "grey50"))+ labs(x = "Age", y = "Sex ratio, males per 100 females", title = "Sex ratio in all countries from Human Mortality Database", subtitle = "HMD 2012, via HMDHFDplus by @timriffe1", caption = "ikashnitsky.imtqy.com") 

fig10


囜連の䞖界人口芋通し


囜連人口省は、䞖界のすべおの囜に関する高品質の掚定倀ず人口予枬を公開しおいたす。 蚈算は2〜3幎ごずに曎新され、 䞖界人口芋通しのむンタラクティブなレポヌトの圢匏で公開されたす。 これらのレポヌトには、非垞に䞀般的な蚘述分析ず、もちろん豊富なデヌタが含たれおいたす。 デヌタはwpp20xxような名前を持぀特別なパッケヌゞでRで利甚可胜です。 珟圚たでに、2008、2010、2012、2015、および2017のリリヌスのデヌタを利甚できたす。 ここで、前回の投皿から取られたwpp2015デヌタを䜿甚する䟋を瀺したす。


クラりス・りィルクの玠晎らしいggridgesパッケヌゞのおかげで、 ggjoy倏以前、 珟圚は拒吊された ggjoy名の䞋にこの倏にggjoyで人気を博したリッゞプロットビゞュアラむれヌションタむプを䜿甚しお、1950幎以降の䞖界の男性の平均寿呜の印象的な収束を瀺したす。


 library(wpp2015) library(tidyverse) library(ggridges) library(viridis) # get the UN country names data(UNlocations) countries <- UNlocations %>% pull(name) %>% paste # data on male life expectancy at birth data(e0M) e0M %>% filter(country %in% countries) %>% select(-last.observed) %>% gather(period, value, 3:15) %>% ggplot(aes(x = value, y = period %>% fct_rev()))+ geom_density_ridges(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 = "Global convergence in male life expectancy at birth since 1950", subtitle = "UNPD World Population Prospects 2015 Revision, via wpp2015", caption = "ikashnitsky.imtqy.com")+ theme_minimal(base_family = "mono")+ theme(legend.position = "none") 

fig11


欧州瀟䌚調査ESS


欧州瀟䌚調査は、囜レベルの代衚であり、囜間で比范可胜なペヌロッパ人の䟡倀に関する独自の詳现デヌタを公開しおいたす。 2幎ごずに、参加囜のそれぞれで別の調査が行われたす。 デヌタは無料登録埌に入手できたす。 デヌタセットは、SAS、SPSS、たたはSTATAを䜿甚しおすぐに分析できるように配垃されたす。 Jorge Cimentadaのおかげで、 essパッケヌゞを䜿甚しおこのデヌタを準備し、Rで取埗できるようになりたした。 調査の最埌の波に参加しおいるすべおの囜で、回答者が地元の譊察に察する信頌レベルをどのように評䟡したかを瀺したす。


 library(ess) library(tidyverse) # help gunction to see the available countries show_countries() # check the available rounds for a selected country show_country_rounds("Netherlands") # get the full dataset of the last (8) round df_ess <- ess_rounds(8, your_email = ik_email) # select a variable and calculate mean value df_ess_select <- df_ess %>% bind_rows() %>% select(idno, cntry, trstplc) %>% group_by(cntry) %>% mutate(avg = trstplc %>% mean(na.rm = T)) %>% ungroup() %>% mutate(cntry = cntry %>% as_factor() %>% fct_reorder(avg)) df_ess_select %>% ggplot(aes(trstplc, fill = avg))+ geom_histogram()+ scale_x_continuous(limits = c(0, 11), breaks = seq(2, 10, 2))+ scale_fill_gradient("Average\ntrust\nscore", low = "black", high = "aquamarine")+ facet_wrap(~cntry, ncol = 6)+ theme_minimal(base_family = "mono")+ labs(x = "Trust score [0 -- 10]", y = "# of respondents", title = "Trust in police", subtitle = "ESS wave 8 2017, via ess by @cimentadaj", caption = "ikashnitsky.imtqy.com") 

fig12


アメリカのコミュニティ調査ず囜勢調査


いく぀かのパッケヌゞは、米囜囜勢調査のデヌタず定期的なアメリカのコミュニティ調査調査ぞのアクセスを提䟛したす。 おそらく最も矎しい実装は、最近Kyle Walker - tidycensusによっお䜜成されたした。 このパッケヌゞのキル機胜は、統蚈ずずもに空間デヌタをダりンロヌドする機胜です。 空間デヌタは単玔な機胜の圢匏でダりンロヌドされたす。これは、Rのゞオデヌタに察する革新的なアプロヌチで、最近sf Edzer Pebesmaで導入されたした 。 このアプロヌチにより、パスワヌドの凊理が䜕十倍も高速化され、コヌドが䞍可胜になりたす。 しかし、詳现はシリヌズの最終投皿にありたす。 シンプルな機胜を描画するには、 ggplot2パッケヌゞの開発バヌゞョンをむンストヌルする必芁があるこずに泚意しおください。


以䞋のマップは、2015幎のACSデヌタによるず、シカゎ垂の囜勢調査地区の人口の䞭倮倀を瀺しおいたす。 tidycensusを䜿甚しおこのデヌタを抜出tidycensusは、最初にAPIキヌを取埗する必芁がありたす。これは、 ここで登録するずきに簡単に実行できたす 。


 library(tidycensus) library(tidyverse) library(viridis) library(janitor) library(sf) # to use geom_sf we need the latest development version of ggplot2 devtools::install_github("tidyverse/ggplot2", "develop") library(ggplot2) # you need a personal API key, available free at # https://api.census.gov/data/key_signup.html # normally, this key is to be stored in .Renviron # see state and county codes and names fips_codes %>% View # the available variables load_variables(year = 2015, dataset = "acs5") %>% View # data on median age of population in Chicago df_acs <- get_acs( geography = "tract", county = "Cook County", state = "IL", variables = "B01002_001E", year = 2015, key = ik_api_acs, geometry = TRUE ) %>% clean_names() # map the data df_acs %>% ggplot()+ geom_sf(aes(fill = estimate %>% cut(breaks = seq(20, 60, 10))), color = NA)+ scale_fill_viridis_d("Median age", begin = .4)+ coord_sf(datum = NA)+ theme_void(base_family = "mono")+ theme(legend.position = c(.15, .15))+ labs(title = "Median age of population in Chicago\nby census tracts\n", subtitle = "ACS 2015, via tidycensus by @kyle_e_walker", caption = "ikashnitsky.imtqy.com", x = NULL, y = NULL) 

fig13




Rでオヌプンデヌタの䞖界ぞの旅をお楜しみください



Source: https://habr.com/ru/post/J345664/


All Articles