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 = …

050-052 ggplotでの色の指定

まとめ一覧 演習問題で作ったグラフを塗り分けて、より「意味を感じられる」グラフを作ってみましょう。 library(ggplot2) Q1: ダイヤモンドの重さと値段の関係を、散布図で描画してください。 ggplot(data = diamonds) + geom_point(mapping = aes(x = cara…

044-063 ggplotでの描画のまとめ

まとめ一覧 ggplotとは 「グラフの文法」を使って、データを簡単にキレイに可視化するためのツールです ggplotの書き方テンプレート 基本的な構成は、次の表のような指定をして、そのスクリプトを+でつないでいきます。 この表は、このような棒グラフを作成…

044-049 ggplotでの基本的なグラフの作成と演習

まとめ一覧 ggplotで基本的なグラフを描画する! library(ggplot2) #これで、 diamonds economics msleep #等のデータセットが利用できるようになっていると思うので、これらを利用します。 diamonds:50000個のダイヤモンドのデータ price -> 値段(ドル) ca…

040-043 因子型の説明(S4)

まとめ一覧 因子型とは 男/女のようにいわゆる、カテゴリカル変数と呼ばれるものをRで現すときに使われる型です。 as.factor(文字列型のベクトル)で作れます。 レベル(数字)とそれに対応したラベル(文字)で表現されています factor_table <- data.frame( sei…

034-036 パース(parse)(S3)

まとめ一覧 パースとは parseとは、プログラミング言語であつかえる形にデータを変換するという意味がある英単語です。 parse_number(c("a",1,2,3)) parse_character(c("a","b","c",1,2,3)) #ベクトルは基本的には同じ型である必要がありました c(1,2,3,"a")…

031-033 デリミターとファイルの読み込み/エクセルファイルの読み込み(S3)

まとめ一覧 デリミター デリミターは列の分割を何らかの記号を利用して表現するものです。 よく用いられるデリミターは , カンマ ; セミコロン /t(tab) タブ 等があります。 read_delim関数での読み込み方法 read_delimは設定するべき項目が多いですが、基本…

028-030 インポートの概要とパスとディレクトリ(S3)

まとめ一覧 インポートの概要 インポートを実施するためには どこにあるファイルが パス(Path) ディレクトリ(Directory) どういう形で保存されているか 区切り文字(Delimiter) を意識する必要があります。 パスとディレクトリ 同じ名前のファイルを同じフ…

024-026 関数(S2)

まとめ一覧 関数の利用 今回、使う関数は、sum(), summary(), unique()です。 sum は足すという意味の英単語です。 summary はサマリーです。集計したり集約したりする関数です。 unique は、ベクトルのなかから「ユニーク」なものを取り出します まずは、デ…

021-023 パッケージ(S2)

まとめ一覧 パッケージとは すでに、誰かが作ってくれた便利なツール 遠くに移動するために、車を1から開発はしないですね。 同様に、Rには、機能を拡張する便利なツールがたくさんあります。 それが、パッケージです 本コースで多用するパッケージは、 tid…

017-020 データフレーム(S2)

まとめ一覧 データフレームのイメージ pic ベクトルだと、1列、1列に名前をつけてました データフレームだと、「表」に名前をつけることができます 管理が楽ちん! データフレームを作成する #データフレームをつくりましょう data.frame(c(1,2,3,4),c("Aさ…