#------------------------------------------------------------------ # 昭和大学 第1回実践臨床統計学セミナー Rハンズオン # Rの基礎と記述統計・グラフィック # 2021年5月24日 #------------------------------------------------------------------ #------------------------------------------------------------------ # 1. データセットの読み込みと基本操作 #------------------------------------------------------------------ setwd("C:\\R2021") # setwdで、カレントのディレクトリを指定します。 # 他のソフトウェアと違う点は、フォルダのパスの指定において、「\」を二重にしなくてはいけないという点です。 # 通常は、「C:\」で済みますが、「C:\\」という風に「\」を「\\」と表記しなくてはいけません。 # メニューバーの中から、「ファイル」→「ディレクトリの変更」としても、同様の操作を行うことができます。 nhanes <- read.csv(file="NHANES.csv") # CSV形式のデータセットを読み込むためには、read.csvという関数を使います。 # fileという引数で、ファイル名を指定します。カレントのディレクトリにファイル名が一致するCSVファイルがあれば、読み込まれます。 # 読み込まれたCSVのデータセットは、nhanesという名前のオブジェクトとして、R上に定義されます。 nhanes # オブジェクト名のみを入力して、エンターキーを押せば、オブジェクトの中身が出力されます。 head(nhanes) # データセットが大きすぎる場合には、画面に収まりきらず、変数名なども参照できません。 # head関数を使うと、データセットのはじめの数行程度のみを出力することができます。 attach(nhanes) # attach関数を使うことで、データセットの変数名から、直接、それぞれの変数のデータにアクセスすることができます。 # detach関数で、解除することができます(この場合は、detach(nhanes)で解除できます)。 age gender # nhanesの変数名によって、それぞれの変数の中身に、直接アクセスすることができるようになっています。 # このような数値データが、一列に並んだオブジェクトを、Rでは、「ベクトル(vector)」と言います。 # nhanesのような行列状のデータセットは、属性によって、「matrix」「array」「data.frame」などと言われます。 # 今回のnhanesは、複数のベクトルを結合したオブジェクト(list形式で結合されています)として、data.frame形式のオブジェクトとなっています。 #------------------------------------------------------------------ # 2. 記述統計量の計算 #------------------------------------------------------------------ mean(age) # 平均 median(age) # 中央値 var(age) # 分散 sd(age) # 標準偏差 quantile(age) # クォンタイル max(age) # 最大値 min(age) # 最小値 max(age)-min(age) # 範囲(レンジ) quantile(age,0.75)-quantile(age,0.25) # 四分位範囲 summary(age) # 連続変数の代表的な記述統計量をまとめて計算します。 # Rでは、このように、簡単なコマンドで、足し算・引き算などの計算を行うこともできます。 # 統計計算のためのソフトウェアとしての機能だけではなく、高性能な関数電卓としての機能もあります。 123+456 # 足し算 456-123 # 引き算 12*12 # 掛け算 144/12 # 割り算 12^2 # 累乗 sqrt(2) # 平方根 log(100,10) # 対数関数;引数は100,底は10 log(100) # 対数関数;引数は100,底はe(自然対数の底,指定しなかったらeとなる) exp(1) # 指数関数 sort(age) # ベクトルの整列(小さい順に並び替える) rev(age) # ベクトルの整列(逆順に並び替える) sum(age) # ベクトルの要素をすべて足し上げる(総和を計算する) length(age) # ベクトルの長さを算出する dim(nhanes) # 行列のサイズを計算する(列,行の数を計算) table(gender) # カテゴリカル変数の集計(1変数) table(gender,dm2) # カテゴリカル変数の集計(2変数),分割表の作成 #------------------------------------------------------------------ # 3. 記述統計量の一括計算 #------------------------------------------------------------------ install.packages("tableone") # install.packages関数を使うことで、デフォルト設定でインストールされていないパッケージを、インターネット経由でインストールすることができます。 # ここでは、"tableone" というパッケージをインストールするコマンドとなっています。 # CRANのどのミラーサイトからインストールを行うかを選択するウィンドウが出てきます。 # 基本的には、地理的に近いサイトを指定すると、通信速度が速く、ダウンロードを短時間で行うことができます(Japan (Tokyo) がお勧め)。 library("tableone") # library関数で、ダウンロードしたパッケージを、R上に読み込むことができます。 vars1 <- c("age","BMXBMI","BMXWAIST","lbdvid") vars2 <- c("gender","race","edu","PAQ180","smstat") nhanes[vars2] <- lapply(nhanes[vars2], factor) CreateTableOne(vars=vars1, data=nhanes) CreateTableOne(vars=vars2, data=nhanes) CreateTableOne(vars=vars1, strata="dm2", data=nhanes) CreateTableOne(vars=vars2, strata="dm2", data=nhanes) ?CreateTableOne #------------------------------------------------------------------ # 4. 散布図グラフの作図 #------------------------------------------------------------------ plot(BMXWAIST,BMXBMI) cor(BMXWAIST,BMXBMI) #------------------------------------------------------------------ # 5. 箱ひげ図グラフの作図 #------------------------------------------------------------------ boxplot(BMXBMI) boxplot(BMXBMI~dm2) #------------------------------------------------------------------ # 6. 棒グラフの作図 #------------------------------------------------------------------ mean1 <- runif(6,10,30) sd1 <- runif(6,4,6) plot1 <- barplot(mean1, names.arg=c("A","B","C","D","E","F"), col="gray", xlab="Class", ylab="Outcome", ylim=c(0,40)) arrows(plot1, mean1-sd1, plot1, mean1+sd1, code=3, lwd=1, angle=90, length=0.1) box(lty=1)