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.4 データフレーム

R において、もっとも頻繁に使うデータは、データフレームと呼ばれるものです。 データフレームは、エクセルのシートのようなもので、行と列からなる2次元配置のデータです。

1.5 RStudio 内でデータフレームを作成

R の中でデータフレームを作成する方法です。 RStudio は、4つの「パネル」と呼ばれる部分が表示されています。 その左下の Console に、以下のように入力してみます。

dfSample <- read.table(text = "PatientID, Weight, Height
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ペインにする

実際に作図を始める前に、作業環境を改善しましょう。

  1. Tools > Global Options を選択します。
  2. Pane Layout を選択します。
  3. 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)
mpResult <- metaprop(data = dfMeta, 
            event = event, 
            n = sample, 
            studlab = paste(Author, year))

この時、= 記号の左側は関数の引数です。 = 記号の右側は、

metaprop

引数 内容
data データフレーム
event データフレームの列 event
n データフレームの列 sample

となります。event = event とあると、最初のうちは分かりにくいですよね?こういったことを避けるために、列名は大文字から始めるとよいでしょう。 R に関する書籍は、コーディングルールが雑なものが多く、オブジェクトなのか引数なのか混乱させるものが多い印象です。

1.9 オープンアクセスジャーナル

オープンアクセスジャーナルである PLoS ONEScientific Reports, npj Digital Medicine などは、記事掲載時になるべく著者にデータ提供するように求めています。

データ提供手段は、いくつかのパターンが見られます。

  • PLoS ONE 内で、Supplementary Information として提供
  • 他のサイトから提供 (Open Sccience Framework, Kaggle など)
  • 他団体がデータを管理
  • 著者にコンタクト (医療系に多い)