Rでデータ集計に便利なコマンド集と列ごと集計の関数例

[公開日]2016/09/13[更新日]2016/12/14 [カテゴリー]R言語入門 Written by  IMIN

R言語を使って、データ集計するときに便利なコマンド、関数をまとめてみました。

関数・コマンド用法
ave()平均。引数にベクトルをとって、その平均を返す。
median()中央値。引数にベクトルをとってその値の中央値を返す。
sd()不偏標準偏差。引数ベクトルの普遍標準偏差を返す。
ans = t.test(value)
conf = ans$conf.int
confにvalueの95%信頼区間を格納。
min()最小値。引数ベクトルの最小値を返す。
max()最大値。引数ベクトルの最大値を返す。
quantile(value,0.25)%点を求める。この場合valueの25%点を返す。

これを元に、データの列ごとに集計する集計用の関数を作成しました。ご自分のデータ集計の参考にしていただけたら幸いです。

この関数は集計用データdatと、結果出力ファイル名を引数に入れると、列ごとに集計を行なって、集計結果のファイルを生成するというようなものです。

出力は、集計データの列名、平均、中央値、不偏標準偏差、95%信頼区間、最小値、25%点、75%点、最大値、データ数、の順番で出ます。

関数

syuukei <- function(dat,filename)
{
for(i in 1:ncol(dat))
{
data = na.omit(dat[,i])
name = colnames(dat)[i]
ave = ave(data)[1]
med = median(data)
sd = sd(data)
ans = t.test(data)
conf = ans$conf.int
min = min(data)
max = max(data)
q25 = quantile(data,0.25)
q75 = quantile(data,0.75)
N = length(data)
result = cbind(name,ave,med,sd,conf[1],conf[2],min,q25,q75,max,N)
colnames(result)[5] = "95%信頼区間下限"
colnames(result)[6] = "95%信頼区間上限"
if(i == 1)
{
write.table(matrix(c(colnames(result)),nrow=1),filename,append=T,quote=F,sep=",",row.names=F,col.names=F,fileEncoding="CP932")
}
write.table(result,filename,append=T,quote=F,sep=",",row.names=F,col.names=F,fileEncoding="CP932")
}
}

例えば、dfにデータフレーム型で格納されたデータについて、2列〜12列まで集計したい場合、以下のようにプログラムを記述します。

プログラム

dat = df[,c(2:12)]
syuukei(dat,filename)

  • スポンサーリンク

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    CAPTCHA