はなまの雑食日記

はなま(@hanama_chem)が雑食したものについてのブログです

今週はRの練習〜♪

初めての進捗報告です!

今週の京都は前半寒かったですが後半は暖かくなって春らしい陽気でした。
ギターを弾く趣味があるのですが、この時期の鴨川の河川敷あたりで爪弾くのはとっても風流だな〜って思っている今日この頃です(^o^)

来週末のGW前半にでも行くことにします♬

さて、今週は!

『R初心者のためのABC』を読み進めました!

授業でRを少し触りながら機械学習の大枠を学ぶものがあるのでそれに向けて早めにRの勉強をしてみることにしました!データを扱うツールを使えるようになるのは後々のことを考えてもプラスですもんね。

 

この本は月曜に借りて一週間かけて半分くらい読み進めました。機械学習の理論にはあまり触れずに、とりあえずRを扱えるようにして、その後に詳しい理論を学ぶ足がかりにしていくというコンセプトで書かれた本でした。データのインポート、エクスポートや加工、グラフの描画のやり方を学びました。

 

本のコードを順に実行しながらいろんな関数について学んでいくスタイルだったのでRStdioで自分の手元でも実装しながら読み進めていきました。章末には演習問題もあったのでその実装も行いました。

 

今週進めた最後の章、5章の演習問題で描いたグラフを載せておきます。最後にはこれを書くのに使ったコードも書いておきます。図1はポルトガルの道路の標本地点で見つかった両生類の死骸の数とその周辺にある最も近くの国立までの距離をプロットし、平滑化曲線を追加しました。
図2は同じ散布図の点の大きさをOLIVEの値によって変えたものです。
まだRの詳しいことは学習出来ていないながらも、綺麗なグラフがかけてとても嬉しかったです(*^_^*)

f:id:Casta46:20190421230618p:plain
図1
f:id:Casta46:20190421232201p:plain
図2

来週はこの本の続きを読了することを目標に頑張ってみようと思います!

ここまで読んでくれてありがとうございます!

では、また来週!!!

以下は図1と図2を書くのに使ったコードです。データセットはこの本の訳者の方のサイトからダウンロードしました。

#データの読み込み
Amphibian = read.table(file = "Amphibian_road_Kills.txt", header = TRUE)

#散布図を書く。
plot(x = Amphibian$D.PARK, y = Amphibian$TOT.N, 
     xlab = "Distance From Park", ylab = "Total Number", 
     xlim = c(min(Amphibian$D.PARK, na.rm = TRUE), 
     max(Amphibian$D.PARK, na.rm = TRUE)), 
     ylim = c(min(Amphibian$TOT.N, na.rm = TRUE), 
     max(Amphibian$TOT.N, na.rm = TRUE)))

#平滑化曲線を算出し、追加。loess関数を使用
M.Loess = loess(TOT.N ~ D.PARK, data = Amphibian)
Fit = fitted(M.Loess)
Ord1 = order(Amphibian$D.PARK)
lines(Amphibian$D.PARK[Ord1], Fit[Ord1], lwd = 3, lty = 2)

#OLIVEの値の順に散布図の点の大きさを変更
Ord2 = order(Amphibian$OLIVE)
plot(x = Amphibian$D.PARK, y = Amphibian$TOT.N, 
     xlab = "Distance From Park", ylab = "Total Number", 
     xlim = c(min(Amphibian$D.PARK, na.rm = TRUE), 
     max(Amphibian$D.PARK, na.rm = TRUE)), 
     ylim = c(min(Amphibian$TOT.N, na.rm = TRUE), 
     max(Amphibian$TOT.N, na.rm = TRUE)), 
     cex = Ord2/10)