「Rの関数に付属するデータセット以外のデータで思ったように集計できない」ってこと。
僕ら初心者で良くあるのは、こういったところでしょうか。
・文字コードが実施環境と違う
・NAの取り扱いがよくわからない
・依存関係がクリア出来なくてパッケージがインストールできない 等々。
その中でも、「勉強しては忘れ、勉強しては忘れ・・・」しちゃうのがR言語特有の「データフレーム」の取り扱い。特に「factor型」データってややこしいですよね。
リーサスのInboundデータでやってみた。
「地方創生」の重要システムである「地域経済分析システム(RESAS:リーサス)」から「観光マップ」→「外国人訪問分析」を選択してください。上記画像のような各都道府県を訪れたInboundの人数等が国別にわかるのですが、CSVデータをダウンロードすることが出来ます。
R言語の練習にはもってこいなので、こちらを利用してみましょう。
以下ソースコードです。
# CSVファイルを読み込みます。タイトル行があるので、head=TRUEを忘れずに。
inbound.dat <- read.csv("外国人訪問分析_四半期.csv",head=TRUE)
# いちいちデータフレームの名前をタイプするのは面倒なので、attach関数を適用します。
# こうすると列名だけの入力でOKになります。
attach(inbound.dat)
# 「訪日外客数_人」列にInbound人数がありますがfactor型になっているため、
# sum等の集計が出来ません。いったん、「as.character」関数に通してから、「as.numeric」関数で
# 数値データに変換してください。これ、意外に本に書いてないんですよね。。
count.dat <- aggregate(x=list(value=as.numeric(as.character(訪日外客数_人))),by=list(keycol=国名),FUN=sum,na.rm=TRUE)
# ggplot2で作図。2011~15年までのデータを合計しましたが、「keycol=」に「集計年」を追加
# すると年別でも集計出来ます。
library(ggplot2)
p <- ggplot(count.dat, aes(x=keycol, y=value))
p + geom_bar(stat="identity")
0 件のコメント:
コメントを投稿