Rのpurrrを用いたデータの取得と概要把握の方法を紹介します。
データは次のEast Asia (5 February 2021)です。
データを読み込みます。データはExcelで配布されています。データの取得のためには登録してKeyを取得する必要があります。登録は簡単にできて無料です。
library(tidyverse)
library(readxl)
eastAsia <- read_excel("eastAsia.xlsx")
行数と列数を取得します。列数が29列と多いことがわかります。さらに、詳しい情報が必要な場合はstr()を実行します。
dim(eastAsia)
## [1] 31628 29
Mapを使って各列のデータのタイプと重複をのぞいた件数を表示します。Mapはライブラリpurrrの関数です。Purrrはtidyverseに含まれています。
map_df()は、データ・フレームを作成するmap関数です。“.x”にパイプ演算子(%>%)の左のオブジェクト(eastAsia)が代入されます。
COUNTRYは6なので、6か国のデータが含まれていることがわかります。
eastAsia %>% map_df(~(data.frame(n_distinct = n_distinct(.x),
class = class(.x))),
.id = "variable")
## variable n_distinct class
## 1 ISO 6 numeric
## 2 EVENT_ID_CNTY 31628 character
## 3 EVENT_ID_NO_CNTY 15234 numeric
## 4 EVENT_DATE 1132 POSIXct
## 5 EVENT_DATE 1132 POSIXt
## 6 YEAR 4 numeric
## 7 TIME_PRECISION 3 numeric
## 8 EVENT_TYPE 6 character
## 9 SUB_EVENT_TYPE 18 character
## 10 ACTOR1 71 character
## 11 ASSOC_ACTOR_1 2565 character
## 12 INTER1 7 numeric
## 13 ACTOR2 47 character
## 14 ASSOC_ACTOR_2 309 character
## 15 INTER2 8 numeric
## 16 INTERACTION 25 numeric
## 17 REGION 1 character
## 18 COUNTRY 6 character
## 19 ADMIN1 103 character
## 20 ADMIN2 953 character
## 21 ADMIN3 1 logical
## 22 LOCATION 2964 character
## 23 LATITUDE 2827 numeric
## 24 LONGITUDE 2923 numeric
## 25 GEO_PRECISION 3 numeric
## 26 SOURCE 4661 character
## 27 SOURCE_SCALE 22 character
## 28 NOTES 31612 character
## 29 FATALITIES 7 numeric
## 30 TIMESTAMP 326 numeric
データのある国名を取得します。
eastAsia %>% pluck("COUNTRY") %>% unique()
## [1] "China" "Taiwan" "Japan" "North Korea" "South Korea"
## [6] "Mongolia"
日本のどうのようなconflictsが記録されているかを知りたいです。
上のn_distinctの数を見るとNOTESは文字(character)で31612と多く、詳しく説明されていると推測されるので、NOTESを表示します。
eastAsia %>% select(COUNTRY, NOTES) %>% filter(COUNTRY == "Japan")
## # A tibble: 4,835 x 2
## COUNTRY NOTES
## <chr> <chr>
## 1 Japan On 1 January 2018, about 400 citizens gathered on the beach at Henok…
## 2 Japan On 1 January 2018, 10 demonstrators gathered in Chigasaki city (Kana…
## 3 Japan On 1 January 2018, protesters gathered at Chigasaki station in Kanag…
## 4 Japan On 1 January 2018, about 70 protesters gathered in front of the stat…
## 5 Japan On 2 January 2018, 8 demonstrators gathered in Chigasaki city (Kanag…
## 6 Japan On 3 January 2018, protesters gathered in front of the Diet building…
## 7 Japan On 3 January 2018, around 40 demonstrators from No to Abe's Article …
## 8 Japan On 3 January 2018, protesters gathered at Matsudo Station to protest…
## 9 Japan On 3 January 2018, 16 demonstrators gathered at Sakado station of Sa…
## 10 Japan On 3 January 2018, demonstrators gathered at Matsumoto station of Ma…
## # … with 4,825 more rows
この表示では切れますが、RStudioのコンソールで読むと、1件目は沖縄の辺野古基地建設に対する抗議行動だとわかりました。
RStudioの場合、Global Environmentでオブジェクトを開いて、データ・フレームを表示して確認することもできます。
新聞からの情報を収集していると推測しますが、人が入力しているのでしょうか?、、、今のところわかりません。
それにしても、世界のデータをこのように集めているのはすごい。さらに、無料で公開しているというは驚きです。