12 Tips
- 細かな覚え書き
12.1 R Studioの設定
- Windows
- ~/AppData/Roaming/RStudio/
- UNIX
- ~/.config/rstudio/
- rstudio-prefs.json
- /keybindings/rstudio_bindings.json
- /keybindings/editor_bindings.json
- /keybindings/addins.json
- /snippets/r.snippets
12.2 ショートカットキー
動作 | キー |
---|---|
<- | Alt + - |
%>% | Ctrl+Shift+M |
Rmarkdown knit | Ctrl+Shift+K |
chunk挿入,chunk分割 | Ctrl+Shift+I |
インデント自動揃え | Ctrl+I |
Consoleの+を消す | Esc |
カーソルをスクリプトへ | Ctrl+1 |
カーソルをコンソールへ | Ctrl+2 |
関数自動作成 | Ctrl+Alt+X |
見出し,チャンクへジャンプ | Alt+Shift+J |
12.3 # シャープ
Rスクリプトにコメントを残すには#をつける。
manipulation(df, option = TRUE) # これはコメントです
コメントを残すのは、コードレビューしてもらうときのためと、自分が後で見返したときのため。
最初は苦痛かもしれないが、トータルで絶対得なのでコメント書きまくろう。
12.4 if(0)
1行とかの操作を一時的に実行させない場合は上記の#を使えばいい。
実行させたくない操作が多くの行にまたがっている場合は、if(0){}を使うのがおすすめ。
if(0){
veryverylong_action(df) %>%
hogehoge(mano = TRUE) %>%
tonikaku_nagai_syori()
}
if(0){}で囲まれたコードは実行されない。実行させたいときはif(1){}とすればよいので、いわばスイッチになる。
12.4.1 パッケージ無かったらインストール
if (!require("dplyr")) {install.packages("dplyr")}
12.4.2 警告を出力せず読み込む
suppressWarnings(library(tidyverse))
12.5 時間計測
12.5.1 tictoc
12.6 Rの学習・情報を得る
12.7 パッケージの情報を得る
まずは「パッケージ名+R」で検索し、CRANの公式ドキュメントを見る。英語だがこれを見るのは大事。
githubというサイトにはパッケージの関数がどのように定義されているかが載っているので余力があれば見る。
以下のサイトを使えばGoogle翻訳を駆使して日本語で理解できるかも。
12.8 ググるにあたって
わからないことがあったらググる習慣をつけよう。
特に、英語で検索をかけると望みのものが見つかることが多い。
以下に検索に便利なキーワードの書いておく。
知りたいこと | キーワード |
---|---|
エラーの理由 | エラーメッセージコピペ |
tidy dataから検定したい | ○○(検定名) + tidy |
12.9 コーディングスタイルガイド
12.10 Advanced R
12.11 プログラミング時の留意点
12.11.1 心がけること
- 加工前後のデータを比較して、ロジックに問題がないか確認
- エラーはあるものと思い、何回も確認
- 第三者が見ても分かるようにコメントをつける
- 第三者にコードレビューしてもらう
- 対象者のフローチャートを書く
12.11.2 できれば行いたいこと
- 変数定義書を作成
- 第三者にプログラムを書いてもらい、結果が一致するか確認
12.12 ミスしがちなところ
12.12.1 汎用的なところ
- タイプミス、スペルミス
- numeric、character、factor
12.12.2 医療情報データベース特有
- 年月の差をとるのに普通に引き算
- 疑いフラグ抜き忘れ
- 処方日、検査値等の欠損
12.12.3 Rのアップデート
素のRから以下のコードを実行する。
うまくいかない場合は普通にここからダウンロード。
::updateR(browse_news = FALSE, install_R = TRUE, copy_packages = FALSE,copy_Rprofile.site = FALSE, keep_old_packages = FALSE, update_packages = TRUE, start_new_R = FALSE,quit_R = TRUE) installr
12.14 サンプルデータ作成
12.14.1 data.frame()を使う
<- data.frame(id = c(1,1,2,2,3,3,4,4), value = c("a","b","c","a","b","c","a","b")) df
12.14.2 read.table()を使う
<- read.table(text = "id samediff factor value
df 1 S give 3
1 S impact 4
2 S give 2
2 S impact 5
3 D give 1
3 D impact 4
4 D give 3
4 D impact 5", header = TRUE, stringsAsFactors = FALSE)