Rを久しぶりに触った

 Rは3年前に”Rで学ぶ統計入門”で少しだけ触ったが、そのあと久しく使っていなかった。 参加することになったゼミでPythonとRの経験を聞かれたので、実験レポート用の図をRで描いて慣れてみようと思った。

 今回は、同一のフィールドに2系統の散布図と回帰直線、および直線をggplot2を用いてプロットしてみた。

環境構築

 最近はVS Codeを頻繁に使用していたが、R用のIDEであるRStudioがパッケージ管理などが楽とあったので素直にインストールして使うことにした。

 プロジェクトという単位で保存するらしい(そのプロジェクトのディレクトリが作業ディレクトリになる。データのインポートなどの際に大事になる)

プログラム

 グラフ描画用のパッケージggplot2を使った。ggplotは+で様々な要素をつなぐことができ、とても簡単に描写できた(Pythonと比べて。どちらもそれほど使ったことはないが)。データはCSVでインポートさせた(一番左の列にインデックス。2系統あったが、typeという列を用意してその値で区別することにした。)

プログラムはこんな感じ

data <- read.csv("data.csv", header = TRUE)
data

install.packages("ggplot2")
install.packages("ggpmisc")
library(ggplot2)
library(ggpmisc)
p <- ggplot(data = data, mapping = aes(x = k, y = wavelength, color = type)) +
  geom_point() +
  geom_smooth(method = "lm", formula = y ~ x) +
  stat_poly_eq(formula = y ~ x, aes(label = paste(stat(eq.label))), parse = TRUE) +
  geom_abline(intercept = 452, slope = 129) +
  theme_bw(base_size = 16)
p

ggsave("wavelength_vs_k.png")

ggpmiscは近似直線の式をグラフ中に表示させるために使った。

最初のggplotでオブジェクト作成とデータ入力とグループ分け、次geom_pointで散布図のプロット、その次geom_smoothが線形近似、stat_poly_eqが直線の式の添付、geom_ablineが切片と傾きでの直線の描画、最後theme_bwがグラフ全体のスタイルを決めている.

近似直線は誤差も表示されていて、思ったより簡単に立派なものができた

参考資料

(むしろこれがメイン)

以上