===== 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|初めての医療統計 目次]]\\