Chapter 1 はじめに
1.1 R, Rstudio, Rstudio.cloud
本書では、R を手軽に試すことができる RStudio.cloud を使用します。
RStudio.cloud は、R および RStudio を ウェブブラウザ上で遠隔操作するウェブサービスです。 無料版は時間制限などがありますが、手軽に試すことができます。 R はインストールで失敗したり、パッケージのインストールに失敗することがあるので、お勧めです。
1.2 パッケージ
R では、必要となる機能をパッケージ(あるいはライブラリ)として追加していきながら解析を行います。
本書で、以下のようなコードがあるときは、すでにインストール済みであることが前提です。
library(xfun)
##
## 次のパッケージを付け加えます: 'xfun'
## 以下のオブジェクトは 'package:base' からマスクされています:
##
## attr, isFALSE
もし、エラーが出るようなら、まずは Tools > Install Packages から、パッケージをインストールしてください。
1.3 作業を記録
1.3.1 R Markdown
R での作業を記録するには、R script, R Notebook, R Markdown の3種類が主なものになります。
- R script: メモを書くのには不向き。基本的に、コードだけを記述する。
- R Markdown: R のコードと実行結果を埋め込んだ HTML, PDF, Word 書類を作成 (「編む (knit)」と言う)。 することができる。他者への報告に向いている。
- R Notebook: R Markdown を拡張したもの。R Markdown が、ファイル全体を「編む」のに対し、R Notebook は、各コード塊 (chunk) ごとに実行することができる。結果は、R Notebook 内のコードの下に挿入される。HTML を 「編む」場合、コードが含まれる。個人で使用するノートとしての使用に向いている。
R Markdown や R Notebook などは、RStudio に所属する開発者 Xie Yihui (謝益輝) 氏が精力的に開発してきました。 当面は、R Markdown 形式で保存すると良いと思います。
1.5 RStudio 内でデータフレームを作成
R の中でデータフレームを作成する方法です。 RStudio は、4つの「パネル」と呼ばれる部分が表示されています。 その左下の Console に、以下のように入力してみます。
<- read.table(text = "PatientID, Weight, Height
dfSample 1,55,162
2,60,155
3,68,158
4,69,165
5,76,162", header = TRUE, sep=",")
datatable(dfSample)
最後に、エンターキーを押すことを忘れないでください。
これを実行すると、右上パネルの Environment に、今作ったばかりの dfSample というデータフレームが追加されます。 これをクリックすると、左上ペインに中身が表示されます。
なお、この画面でデータフレームの中身を書きかえることはできません。
1.6 5ペインにする
実際に作図を始める前に、作業環境を改善しましょう。
- Tools > Global Options を選択します。
- Pane Layout を選択します。
- Add Column をクリックします。
これで、以下のように Source ペインが左側に追加されました。 (View > Panes > Pane Layout からも設定できます。)
1.7 データのインポート
R では、以下のパッケージを使うことで、さまざまなデータをインポートすることができます。
- readr: CSV形式
- readxl: エクセルファイル
- haven: SPSS, SAS, STATA などの統計ソフトのファイル形式
第2章では CSV 形式、第3・4・7章ではエクセルファイル、第5章ではSTATAデータ、第6章では SPSS データをインポートします。
現在、PLoS ONE や Scientific Journal など、オープンソースアクセスジャーナルを中心に、データがダウンロードできる論文が増えています。
1.8 ファイル名や変数名、列名の注意
pivot_longer/wider で見たように、関数名などの決め方は非常に重要です。 このため、熟練のプログラマーは、通常、変数や関数名の命名規則を決めています。
例えば、関数名は、英語の動詞と名詞を使い、文章になるようにします。 引数もわかりやすくします。
R については、Google が以下のような提案をしています。
- 関数名
- 良 CalculateAvgClicks
- 非推奨 alculate_avg_clicks, calculateAvgClicks
https://k-metrics.github.io/cabinet/basics_coding_style.html
この例にスタイルにもとづくと、pivot_longer は非推奨ということになります。
私は、データフレームは以下が良いと思っています。
- データフレーム名
- 良 dfFrailtyLong
- 非推奨 df, dat, x
ブログ等で、データフレーム名に df や data を使う理由は、短い方がタイプしやすいというものです、しかし、RStudio では、タブキーを押すことでフレーム名の補完をしてくれます。ですので、タイプしやすさよりも、コードの読みやすさ、RStudio を学ぶという2点で、このような命名は避けた方が良いと思います。
- データフレーム列名
- 良 Time, BMS24H (大文字で始まるシンプルな英語)
- 非推奨 24H (数字から始まっている), BMS 24H (空白がある), 日本語, time (小文字で始まっている)
とくに、列名はエクセルファイルなどを読み込んだままですと、非推奨の状態になる事が多く、のちのちエラーに悩まされます。
メタ分析の章で紹介しますが、実際にはこのようなコードになります。
library(meta)
<- metaprop(data = dfMeta,
mpResult event = event,
n = sample,
studlab = paste(Author, year))
この時、= 記号の左側は関数の引数です。 = 記号の右側は、
metaprop
引数 | 内容 |
---|---|
data | データフレーム |
event | データフレームの列 event |
n | データフレームの列 sample |
となります。event = event
とあると、最初のうちは分かりにくいですよね?こういったことを避けるために、列名は大文字から始めるとよいでしょう。
R に関する書籍は、コーディングルールが雑なものが多く、オブジェクトなのか引数なのか混乱させるものが多い印象です。