目次(まとめ)
- 6. 読み込んだデータの概要を把握する
- 7. 実際にデータの一部を表示する
- 8. データの一部を指定してグラフを作成する
こんにちは、みっちゃんです。
前回の記事では「プログラミングをやってみたいけれど、手元のデータからどうやって始めたらいいかわからない」という方向けに、実際のデータをダウンロードするところから、Rを使ったデータ解析手順(読み込み)を紹介しました。
今回の記事では、前回のつづきとして、Rを使ったデータ解析手順(グラフ作成)を紹介したいと思います。
6. 読み込んだデータの概要を把握する
前回の記事で紹介したように、国勢調査のデータをRで読み込みます。
> data <- read.csv("/Users/***/Downloads/001_00.csv", fileEncoding = "CP932", skip = 9, header = T)
「skip = 9」としてデータを読み込んだため、総務省のWebサイトからダウンロードしたファイルの上9行が削除され、「header = T」としたため、10行目がヘッダーとして「data」に読み込まれています。
それでは、実際に読み込んだファイルは、どのようなもの何でしょうか?
例えば、何行のデータがあって、項目(列)の数はどれぐらいあるのでしょうか?
「data」の大きさ(行の数と列の数)を取得するためには、以下のように実行します。
> dim(data)
「dim(・)」とは、dimension(次元)の略であり、「dim(data)」とすると「data」の次数(行の数と列の数)を取得することができます。
実行結果は、以下のようになります。
> dim(data)
[1] 6353 17
ここでは、先頭の "[1]" は無視して大丈夫です。
"6553" が「data」の行数、"17" が「data」の列数に対応します。
つまり、この「data」は、全部で6553行あり、それぞれの行に対して17個の項目があるデータであるということがわかります。
7. 実際にデータの一部を表示する
それでは、その「項目」とは具体的に何なのでしょうか?
実は、この「項目」とは、ヘッダー行として読み込んだ行に記載されているものです。
R上でその内容を確認するためには、以下のように実行します。
> names(data)
実行結果は以下のようになります。
> names(data)
[1] "X10" "X.大項目"
[3] "地域コード" "地域識別コード"
[5] "境域年次.2015." "境域年次.2000."
[7] "X" "人口.平成27年..a."
[9] "人口.平成22年.組替..2.." "平成22年.27年の人口増減数.2.."
[11] "平成22年.27年の人口増減率....2.." "面積.km2...b..1..2.."
[13] "人口密度.1km2当たり...a...b..2." "世帯数.平成27年."
[15] "世帯数.平成22年.組替..2.." "平成22年.27年の世帯数増減数.2.."
[17] "平成22年.27年の世帯数増減率....2."
一部、R上で表せていない文字が存在するので、詳細はExcelで確認する必要がありますが、地域や人口、面積、人口密度などの情報が記載されているデータであることがわかります。
なお、先頭の "[1]"などは項目(列)の番号で、"X10" が1列目、"X.大項目" が2列目に相当します。
次に、項目名だけではなく、データの中身が知りたいと思うかもしれません。
ここで注意してほしいことは、いま読み込んでいるデータが6553行×17列という、かなり大きいデータであるということです。
(おすすめはしないですが)データの全体を表示するためには、以下のように実行します。
> data
大きいデータを全て表示せず、データの一部を表示する、つまり、データの上から数行だけを例として表示するためには、以下のように実行します。
> head(data)
実行結果は以下のようになります。
> head(data)
X10 X.大項目 地域コード 地域識別コード 境域年次.2015. 境域年次.2000. X
1 11 NA 0 a 2015 2000 全国
2 12 NA 1 b 2015 2000 市部
3 13 NA 2 b 2015 2000 郡部
4 14 NA 1000 a 2015 2000 北海道
5 15 NA 1001 b 2015 2000 市部
6 16 NA 1002 b 2015 2000 郡部
人口.平成27年..a. 人口.平成22年.組替..2.. 平成22年.27年の人口増減数.2..
1 127094745 128057352 -962607
2 116137232 116549098 -411866
3 10957513 11508254 -550741
4 5381733 5506419 -124686
5 4395172 4449360 -54188
6 986561 1057059 -70498
平成22年.27年の人口増減率....2.. 面積.km2...b..1..2..
1 -0.7516999102 377970.75
2 -0.3533841163 216973.76
3 -4.7856173491 160912.77
4 -2.2643754498 83424.31
5 -1.2178830214 18536.20
6 -6.6692587642 64829.10
人口密度.1km2当たり...a...b..2. 世帯数.平成27年. 世帯数.平成22年.組替..2..
1 340.8 53448685 51950504
2 535.5 49319924 47812998
3 70.2 4128761 4137506
4 68.6 2444810 2424317
5 238.3 2021698 1989236
6 16.5 423112 435081
平成22年.27年の世帯数増減数.2.. 平成22年.27年の世帯数増減率....2.
1 1498181 2.8838623009
2 1506926 3.1517078264
3 -8745 -0.2113592101
4 20493 0.8453102461
5 32462 1.6318827932
6 -11969 -2.7509820011
※ここでは、表示がガタついていますが、R上ではよりきれいに表示されますのでご安心ください。
8. データの一部を指定してグラフを作成する
例えば、いま取り扱っているデータの13列目は「人口密度」になっています(上で述べたように、names(data)から確認できます)。
この「人口密度」のデータだけを取り出したい場合には、「13列目」という情報から、以下のように実行できます(おすすめしません)。
> data[,13]
「data[行番号、列番号]」の番号を指定することで、対象のデータを取り出すことができます。
この場合には、「13列目のデータ」を取り出しているのですが、行番号を空白にしていることで「6553行全てのデータ」を取り出してしまいます。
そこで、先ほどと同じように、以下のように実行すればOKです。
> head(data[,13])
また「項目名」の情報を以下のように指定して、同じデータを取り出すこともできます。
> head(data$人口密度.1km2当たり...a...b..2.)
※ "data$"と記入して「tab」キーを複数回押すと、候補がでてくるので参照できます。
ここでは、例として、ヒストグラムを作ることで、人口密度の分布を出してみます。
ヒストグラムは以下のように作成します。
> hist(data$人口密度.1km2当たり...a...b..2.)
> box() #枠線でプロット全体を囲みたい場合
実行すると、以下のような図が作成されます。
日本語は、文字化けされてしまうので、以下のように英語を別途指定して、図を修正することができます。
> hist(data$人口密度.1km2当たり...a...b..2., main = "Histogram", xlab = "Population density")
> box() #枠線でプロット全体を囲みたい場合