R言語による医療データ分析

R言語によるデータ分析のオンラインコースを中心に、さまざまなデータ分析について記載してあります。

医師が教えるR言語での医療データ分析入門

101-103 リレーションとXXX_join関数

まとめ一覧 リレーションとXXX_join関数 リレーションをイメージで把握する 基本的に、「表で保存されている」データは、「リレーショナルデータベース」に保存されています。 データ分析を行うにあたって、必要な考え方のみイメージでお伝えします left_joi…

098-100 gather&spread

まとめ一覧 データの方向の転換 gatherとspreadの解説を行います。 ただし、tidyrのV1.1以降では、pivot_longer, pivot_widerという新しい関数が導入されています 考え方はほぼ一緒ですが、pivot_XXX系の関数の方ができることが増えているので、これから学ば…

097 特殊加工:separateで列をわける

まとめ一覧 separateで列をうめる 練習問題を再度みてみましよう。 任意の文字列で列を分割するseparate関数を利用してみましょう。 dft <- tibble( target3 = c( "ope:A 4.5hr 80ml", "ope:B 3hr 10ml", "ope:C 12.5hr 100ml" ) ) dft separate(data, col, …

096 特殊加工:fillで列をうめる

まとめ一覧 fillで列をうめる これまでは、mutate filter arrange等の列や行を操作する関数は、dplyrパッケージ、 strではじまる正規表現を利用できる関数は、stringrパッケージの解説を行ってきました 残りはfill separate gather spreadはtidyrパッケージ…

093-095 if_else, case_when:列内での条件分岐

まとめ一覧 列内での条件分岐 if_else dfif <- tibble(num =c(1:10)) dfif <- dfif %>% mutate(bool = num>5) if_elseはBooleanを判断して、TRUEとFALSEで処理をわける関数です。 if_else(FALSE, "trueです", "falseです") if_else(c(TRUE,TRUE,FALSE), "tru…

088-090 練習課題

まとめ一覧 練習課題 次のデータについて、 dft <- tibble( target1 = c("abc500ml 3unit" ,"def250ml 4unit","ghi100ml 5unit" ), target2 = c("AST 50IU" ,"HbA1c 5.0%" ,"BMI 23.1kg/m^2" ), target3 = c("ope:A 4.5hr 80ml","ope:B 3hr 10ml","ope:C 12.…

087 filterで行の絞り込み

まとめ一覧 filterで行の絞り込み filterの説明です。 test <- tibble(umare = c(1990, 1992, 1997, 1991), height = c(180.0, 176.2, 165.5, 172.3), weight = c(70.2, 80.3,65.3,61.1)) test test$umare > 1995 このBooleanをfilterはtibbleの列に適応して…

086 str_extractとmutate

まとめ一覧 str_exrtactとmutate str_extract ここまでは、booleanで正規表現を返す、str_detect()で話を進めてきました。 行操作には、str_detectで引っかけるという作業が必要ですが、例えば、 prac <- tibble(target = vec) View(prac) というデータがあ…

081-085 正規表現

まとめ一覧 正規表現 さあ、filterへ!といきたいところでえすが、もう一山、Booleanが「しるし」になることを理解したあと、文字列に「しるし」をつける方法を学びましょう。 正規表現というものですが、これは、多分、このコースでもかなりとっつきにくい…

077-080 Logical/Boolean型

まとめ一覧 Logical/Boolean型 これまでの型: 数字:1, 2, 3, 10.4, 100 … 文字列: “Rは楽しい”, “Hi there!”… Logical/Boolean: TRUE か FALSEの二通りのみをとれる型 TRUE/FALSEで真偽の「判定」を行うのに活用 単独での動作 TRUE FALSE TRUE + TRUE TRUE…

076 arrange:行の並び替え

まとめ一覧 arrange:行の並び替え arrangeは、行方向でのソート(並び替え)を行う関数 test #このtibbleを、身長順に並び替えるには? test %>% arrange(height) #昇順 test %>% arrange(desc(height)) #降順 desc = descending(下降する) <=> ascending(上昇…

073-075 列の操作(mutate、rename、select)

まとめ一覧 列の操作 mutate:列の作成 library(tidyverse) test <- tibble(umare = c(1990, 1992, 1997, 1991), height = c(180.0, 176.2, 165.5, 172.3), weight = c(70.2, 80.3,65.3,61.1)) test mutateは、新しい列をつくる関数です。 mutate(.data = <tibble>, <</tibble>…

072 パイプ

まとめ一覧 パイプ(%>%) Ctrl + Shift + M で入力可能。 library(tidyverse) diamonds$carat summary(diamonds$carat) # 上の行と下の行は同じ処理 diamonds$carat %>% summary() パイプを利用すると何が嬉しいかというと、 add(multiply(subtract(divide(3,…

070 messy->tidyへの変換イメージ

まとめ一覧 messyデータをtidyデータに変換するイメージ このデータを frommessy こんな感じになるようにします。 (詳細なステップは、動画で確認ください) 今後、解説する関数は次のような形です まとめ一覧

067-069 データクリーニングの全体像とtidyデータ

まとめ一覧 データクリーニングの全体像 全体像 dc全体像> tidy vs messyデータ tidy = 整頓、整理された messy = やっかいな tidyデータとは 1列が1変数に対応している 1行が1観察に対応している (1観察単位が1つの表を形作る) Wickham H (2014). “Tidy D…

065 補足:X軸のラベルの回転

まとめ一覧 補足:themeでX軸のラベルを回転させる themeでの個別設定が必要になる場合について解説します table <- data.frame( item_name = c("究極のマスクメロンアイスクリーム", "イチゴたっぷりショートケーキイタリア風", "和栗の贅沢ブラックモンブ…

064 補足:集計済みデータの描画

まとめ一覧 補足:集計済みデータの描画~statオプション~ 集計済みのデータを表示したい: library(ggplot2) table <- data.frame( age_group = c("~20","21~40","41~60","61~80","81~100","100~"), yearly_admission = c(39,42,73,88,93,132) ) ggplot(tab…

061-062 ggplotのテーマ設定方法

まとめ一覧 Theme 設定 単純にグラフにtheme_XXX()を足すだけで、お手軽にテーマ設定ができます。 text_label_of_clarity <- c("含まれる", "わずかにSI2","わずかにSI1", "ほんのわずかにVS2","ほんのわずかにVS1", "ごくごくわずかにVVS2","ごくごくわずか…

056-059 凡例の設定

まとめ一覧 凡例操作 library(tidyverse) graph <- ggplot(diamonds) + geom_histogram(aes(x = price, fill = clarity)) graph まず、凡例をけしてみる guide = FALSE graph + scale_fill_discrete(guide = FALSE) タイトルをいじる graph graph + scale_fi…

053-055 タイトルとラベルの指定

まとめ一覧 ggplot(diamonds) + geom_histogram(aes(x = price, fill = color)) タイトル:「ダイアモンドの値段分布」 X軸:「値段(ドル)」 Y軸:「件数」とつけてみましょう。 ggplot(diamonds) + geom_histogram(aes(price, fill=color)) + labs(title = …

015-016 ベクトル(S2)

まとめ一覧 データの行と列 <figcaptiocoln>row 行方向と、列方向では、どちらのデータが「型」の予測がつきやすいでしよう? row ベクトル vector 数学のベクトルと違い、縦や横の概念はありません。しかし、「全て同じ型」である必要があるので、コラム方向でのイメージが</figcaptiocoln>…

013-014 変数(S2)

まとめ一覧 変数とは 「箱」をイメージしてください。 ある「箱」に何かの数値や文字列を保存して、別の機会に利用する場合、その箱のことを「変数」と呼びます。 数学では、変数はXとかYとか、アルファベット1文字でしたが、Rでは文字列であれば、いくつか…

011-012 型(S2)

まとめ一覧 コンピューター(R言語)と人の違い 「いち + に」と人が聞けば、「3」 と答えられる人がいる一方、 R言語上で、 「いち」という文字 + 「に」という文字 を実行するとエラーが生じます。 それは、「いち」は文字列型であって 数字の「1」とは明確…

008 新規プロジェクトの作成(S2)

まとめ一覧 プロジェクトはこれから行う分析を一つのかたまりとして保持してくれる便利な機能です。 作業単位毎に作成してみることをお勧めします。 新規プロジェクトの作成 まとめ一覧

006 RStudioの画面の解説(S2)

まとめ一覧 英語の必要性 残念ながら、Rは英語圏で作成されたもので、中学~高校レベルの英語力を必要とします。 単語さえ理解できれば問題なく使えます 使っているうちにストレスなく利用できるようになります。 RStudioの画面の基本 まずは、スクリプトフ…

002-004 RとR Studio(S1)

まとめ一覧 R言語、IDE R言語は、統計に特化したプログラミング言語です。R言語単独で使おうとすると、かなり大変です。 多くのプログラミング言語でも存在しますが、その言語を楽に使うために支援してくれるソフトウェアがあり、それをIDE(統合開発環境)と…

001 コースの全体像(S1)

まとめ一覧 なぜR言語か? R言語は統計処理や計算に強みをもつプログラミング言語です。 一般的に販売されている統計ソフトに比べると メリット 無料である(ため、どのような職場や環境でもアクセスすることができる) 豊富な統計パッケージ 豊富なデータ分…