記述統計を一括で出力する~The R tips~

記述統計を一括で出力する~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関数を使うことで記述統計の表を見やすくして出力しています。

関連するトピック

コメントは受け付けていません。