===== R Notebookで折れ線グラフと誤差 =====
基本的に、[[Excelで折れ線グラフと誤差]]に記載させていただいた方法でExcelを用いて描く法が圧倒的に早いです。しかし、見栄えを細かく設定したい場合は、Rを用いてグラフを描くとよいと思われます。かなり面倒ですが、慣れてくると、おそらく、楽しくなってくると思われます。
===== 開発環境 =====
Windows 8.1 Pro (64-bit)\\
R Studio 1.1.383
===== 1.データの準備 =====
エクセルに書き込んでいくのですが、1行目にIDや年齢、糖尿病DMの有無などの項目を並べていき、2行目からは各症例の生データを打ち込んでいきます。できれば、項目もデータも『半角英数字』が望ましいです。もし欠損データがある場合は、『NA』と入力します。
今回は、以下のようなデータを用意します。糖尿病の7症例の3ヶ月間のHbA1c[%]の推移のデータだとします。
^ ID ^ age ^ sex ^ DM ^ HbA1c00M ^ HbA1c01M ^ HbA1c02M ^ HbA1c03M ^
| 00001 | 56 | M | 1 | 7.3 | 7.4 | 7.3 | 7.4 |
| 00002 | 77 | F | 1 | 8.3 | 8.4 | 8.3 | 8.2 |
| 00003 | 68 | M | 1 | 7.1 | 7.0 | 7.0 | 7.0 |
| 00004 | 81 | F | 1 | 7.6 | 7.4 | 7.3 | 7.4 |
| 00005 | 42 | M | 1 | 10.1 | 8.4 | 7.3 | 6.5 |
| 00006 | 65 | M | 1 | 6.1 | 6.2 | 6.2 | 6.3 |
| 00007 | 68 | F | 1 | 7.8 | 7.4 | 7.9 | 8.4 |
エクセルの画面では以下のようになります。
{{:pasted:20171124-072636.png}}
上記のエクセルファイルは、以下からダウンロードできます。
{{book2.xlsx}}
このHbA1cの平均の折れ線グラフと、各月における標準偏差をグラフに書き込みをしたいと思います。
ファイル > 名前をつけて保存 > 「CSV(コンマ区切り)(*.csv)」を選択して、「保存」をクリック。
{{:pasted:20171208-001246.png}}
すると、book2.csv というファイルが保存される。
{{:pasted:20171208-001414.png}}
book2.csvは、以下をテキストファイルにコピーしてからbook2.csvという名前で保存していただけますと、利用できます。
ID,age,sex,DM,HbA1c00M,HbA1c01M,HbA1c02M,HbA1c03M
1,56,M,1,7.3,7.4,7.3,7.4
2,77,F,1,8.3,8.4,8.3,8.2
3,68,M,1,7.1,7,7,7
4,81,F,1,7.6,7.4,7.3,7.4
5,42,M,1,10.1,8.4,7.3,6.5
6,65,M,1,6.1,6.2,6.2,6.3
7,68,F,1,7.8,7.4,7.9,8.4
===== 2.折れ線グラフの作成 =====
R Studioで、File > New File > R Notebook をクリック
{{:pasted:20171208-002037.png}}
File > Save As で、今回は、171028_002 と入力して保存。
{{:pasted:20171208-002213.png}}
その後、下図のような位置にある、"Insert">"R" で、「チャンク」を挿入。
{{:pasted:20171208-002300.png}}
以下のようにグレーの部分が表示されるので、グレーの部分の中身に、Rのコードを記入。
{{:pasted:20171208-002452.png}}
Rのコード
# データの読み込み
x <- read.csv("book2.csv")
head(x)
次に、そのコードを書いたチャンク(グレーの部分)の右上の、緑色の三角ボタンをクリック
{{:pasted:20171208-002837.png}}
すると、そのチャンク内のコードが実行される。
{{:pasted:20171208-002927.png}}
さらに、次の行に新しいチャンクを作成して、以下のコードを記載。
# csvファイルの読み込み
x <- read.csv("book2.csv")
# (x,y)の値の指定
x1 <- c(0, 1, 2, 3)
y1 <- c(mean(x$HbA1c00M), mean(x$HbA1c01M), mean(x$HbA1c02M), mean(x$HbA1c03M))
# 高水準関数plotで、座標面を記載
plot(0, 0, type = "n", xaxt="n", xlim = range(x1), ylim = c(0, max(x[,5:8])),
xlab = "Month", ylab = "HbA1c")
# 低水準関数pointsとlinesで、上で作った座標面に折れ線グラフを追加記載
m <- apply(x[,5:8], 2, mean)
s <- apply(x[,5:8], 2, sd)
points(x1, m, pch=16)
lines(x1, m)
# 低水準関数arrowsで、標準偏差を追加記載
arrows(x1, m + s, x1, m - s, angle = 90, length = 0.1)
arrows(x1, m - s, x1, m + s, angle = 90, length = 0.1)
axis(1, at=0:3, labels=c("0M", "1M", "2M", "3M"))
{{:pasted:20171216-234338.png}}
上の方の、Preview または、Knit To HTMLをクリック。
{{:pasted:20171216-234550.png}}
保存したいグラフを右クリックして、"Copy Image"をクリック。
{{:pasted:20171216-234755.png}}
Powerpointか何かを開いて、"Ctrl+V"でペースト。
{{:pasted:20171216-235201.png}}
なんだか[[Excelで折れ線グラフと誤差]]と比べて非常に面倒ですが、がんばって勉強すれば、エクセルよりも自由度が高そうです。
===== 参考文献 =====
誤差範囲\\
折れ線グラフにエラーバーをつける方法\\
https://stats.biopapyrus.jp/r/graph/errorbar.html
ggplot2用例集 入門編 - SlideShare\\
https://www.slideshare.net/mobile/nocchi_airport/ggplot2-62471507\\
論文の図の作成
グラフ描画ggplot2の辞書的まとめ20のコード\\
https://mrunadon.github.io/ggplot2/\\
→このサイトのコードをコピペするのが簡単か。
ggplot2 まとめ: 初歩から程よいレベルまで - Mr.Unadon - \\
https://mrunadon.github.io/images/geom_kazutanR.html
論文用の棒グラフと折れ線グラフをggplot2で描く\\
https://mrunadon.github.io/ThesisPlot/
ggplotで論文用のthemeを作成する\\
http://qh73xebitbucketorg.readthedocs.io/ja/latest/1.Programmings/r/library/ggplot/tips/reportTheme/\\
スクリプト冒頭で “library(grid)” とすれば良い
2012-12-18
『心理学研究』に準拠したggplot2のtheme\\
http://m884.hateblo.jp/entry/2012/12/18/152040
連載\\
R Markdownで楽々レポートづくり\\
http://gihyo.jp/admin/serial/01/r-markdown
2017-12-07\\
Rで横軸が時系列のグラフを書く\\
http://touch-sp.hatenablog.com/entry/2017/12/07/074914
R 使い方 軸・ラベルの調整(向き・サイズ・色など) グラフの描き方
2016年11月24日\\
http://bioinfo-dojo.net/2016/11/24/various_axis_r/
R でプログラミング:データの一括処理とグラフ描き\\
6. グラフの重ね描き\\
http://takenaka-akio.org/doc/r_auto/chapter_06.html
===== リンク =====
次:
[[ggplot2で折れ線グラフ]]
\\
前:
[[RNotebookでcsvファイルの読み込みと表示]]
\\
[[sidebar|初めての医療統計 目次]]\\