2017-11-29 26 views
0

ウィキペディアの人間開発指数から最初の8つのテーブル(非常に高、高、中、低)を掻き取ろうとしています。ウィキペディアのテーブルを掻き集めるr

ゼロで始まっていますが、リストを取得しています。私は間違って何をしていますか? R :(

libray(rvest) 
url <- "https://en.wikipedia.org/wiki/List_of_countries_by_Human_Development_Index#Complete_list_of_countries" 
webpage <- read_html(url) 

hdi_tables <- html_nodes(webpage, 'table') 

head(hdi_tables, n = 10) 

scrape <- url %>% 
    read_html() %>% 
    html_nodes(xpath = '//*[@id="mw-content-text"]/div/div[5]/table/tbody/tr/td[1]/table') %>% 
    html_table() 

head(scrape, n=10) 
+1

元のデータを入手する方が簡単かもしれません(http://hdr.undp.org/ja/data)。 「HDI」を選択し、2015年までCSVファイルをダウンロードすることができます。ウィキペディアの表は2016年の見積もりです。 – neilfws

答えて

0

に新しいあなたの代わりにウィキペディアのマークアップ言語を解析して大丈夫なら、あなたがtrueにas_wikitextセットでPAGE_CONTENTを試してみてください、ドキュメントをスキミングから(ページのマークアップをつかむためにWikipediRを使用して試みることができます。)そして、あなたはすべてがこのようになり、いくつかの行取得します:。

| 1 || {{steady}} ||style="text-align:left"| {{flag|Norway}} || 0.949 || {{increase}} 0.001 

これはstrsplitか何かを使用してRで解析可能でなければなりません

1

私はで動作するように容易になるだろうと思います0:

両方のドロップダウンリストから「Human Development Index(HDI)」を選択し、「Download Data」リンクをクリックして、CSVファイルHuman Development Index (HDI).csvを取得します。

Rにそれを読む:あなたは、データを再構築2015年の値を取得し、低、中、高、または非常に高いとして国を分類することができ

library(tidyverse) 
Human_Development_Index_HDI_ <- read_csv("path/to/Human Development Index (HDI).csv", 
             skip = 1) 

hdi <- Human_Development_Index_HDI_ %>% 
    gather(Year, HDI, -`HDI Rank (2015)`, -Country) %>% 
    filter(Year == "2015") %>% 
    na.omit() %>% 
    mutate(Year = as.numeric(Year), 
     classification = cut(HDI, 
           breaks = c(0, 0.549, 0.699, 0.799, 1), 
           labels = c("low", "medium", "high", "very_high"))) 

hdi 

# A tibble: 188 x 5 
    `HDI Rank (2015)`    Country Year HDI classification 
       <int>    <chr> <dbl> <dbl>   <fctr> 
1    169   Afghanistan 2015 0.479   low 
2    75    Albania 2015 0.764   high 
3    83    Algeria 2015 0.745   high 
4    32    Andorra 2015 0.858  very_high 
5    150    Angola 2015 0.533   low 
6    62 Antigua and Barbuda 2015 0.786   high 
7    45   Argentina 2015 0.827  very_high 
8    84    Armenia 2015 0.743   high 
9     2   Australia 2015 0.939  very_high 
10    24    Austria 2015 0.893  very_high 
# ... with 178 more rows 

あなたが変更することができますWikipediaの表の「前年度からの変更」値を複製する場合は、2014年の値も取得するフィルタ。

関連する問題