記述統計を一括で出力する~The R tips~
レポートや論文で書く必要がでてくる記述統計ですが、毎回ひとつづつ計算して表を作るのは骨が折れます。そこで、よく記述統計で問われる平均、中央値、標準偏差、最小、最大に限って、一括で記述統計の表を出力する関数を作りました。
StatTable <- function(x){
means <- apply(x,2,mean) #xの各列(2)にmean関数を適用しmeansに代入
medians <- apply(x,2,median) #xの各列(2)にmedian関数を適用しmediansに代入
sds <- apply(x,2,sd) #xの各列(2)にsd関数を適用しmeansに代入
maxs <- apply(x,2,max) #xの各列(2)にmax関数を適用しmaxsに代入
mins <- apply(x,2,min) #xの各列(2)にmin関数を適用しminsに代入
table_x <- t(rbind(means,medians,sds,maxs,mins))
colnames(table_x) <- c("平均","中央値","標準偏差","最大値","最小値")
table_x
}
#データの作成
N <- 100
X1 <- rnorm(N,mean=1,sd=2)
X2 <- rnorm(N,mean=-1,sd=4)
X3 <- rnorm(N,mean=0,sd=1.3)
X <- cbind(X1,X2,X3)
head(X)
StatTable(X) #Xの各変数にStatTableを適用
記述統計の出力結果はこちらです。
コードの構造
このコードでは、まずStatTable関数を定義しています。StatTable関数は、データを投げ込むと各変数の平均、中央値、標準偏差、最小値、最大値を計算し出力する関数です。各変数の記述統計の平均、中央値、標準偏差、最小値、最大値を一括して計算するためにapply関数を使っています。
means <- apply(x,2,mean) #xの各列(2)にmean関数を適用しmeansに代入
medians <- apply(x,2,median) #xの各列(2)にmedian関数を適用しmediansに代入
sds <- apply(x,2,sd) #xの各列(2)にsd関数を適用しmeansに代入
maxs <- apply(x,2,max) #xの各列(2)にmax関数を適用しmaxsに代入
mins <- apply(x,2,min) #xの各列(2)にmin関数を適用しminsに代入
この部分で、データに対して平均、中央値、標準偏差、最小値、最大値を一括して計算するためにapply関数を使うように指示しています。そして、計算されたものを見やすいように表として出力しています。記述統計の出力部はこの部分になっています。
table_x <- t(rbind(means,medians,sds,maxs,mins))
colnames(table_x) <- c("平均","中央値","標準偏差","最大値","最小値")
table_x
colnames関数を使うことで記述統計の表を見やすくして出力しています。