R言語

R言語 データ集計が簡単に行える関数【自作関数】

  1. HOME >
  2. R言語 >

R言語 データ集計が簡単に行える関数【自作関数】

スポンサーリンク

こんにちは、usagi-sanです。今回はデータ集計に関する関数を紹介します。

データ解析を行う上でデータ集計はほぼ必須である上、列数が多いデータの集計は非常に面倒です。

いちいちrbindcbindを用いて集計表を作成するのがおっくうになったので、集計表を自動で作成してくれる関数を作りました。

今回紹介する関数は以下のパッケージをインストールすることで使えます。

R言語 自作パッケージ UsagiSan

こんにちは、usagi-sanです。 R言語の自作パッケージを紹介します。 統計解析のアルバイトをしている中、暇な時間を見つけて自分でパッケージを作ってみました。 Rのパッケージには、統計解析用のパッ ...

続きを見る

関数getSummaryTable

関数getSummaryTableは集計表を作成する関数です。numeric型のデータに対しては平均標準偏差などを計算し、factor型のデータに対して各カテゴリー数その割合(パーセント)を計算します。集計表は2元分割表となっており、指定した変数についてまとめてくれます。

関数getSummaryTableとその引数は以下の通りです。

getSummaryTable(data, namesForRow, nameForCol, digits = 0, locationPar = "mean", sd = FALSE, Qu = FALSE, ratio = FALSE)
関数getSummaryTableの引数
data集計したいデータフレーム。
namesForRow行方向に集計したい変数名。
nameForCol列方向に集計したいfactor型の変数名。
digits小数点以下の桁数。
locationParcharacter型で位置母数を指定できる。"mean"で平均値、"median"で中央値、"mode"で最頻値を集計表にまとめます。
sd標準偏差を集計表に含めるか含めないか。
Qu第一四部位数と第二四部位数を含めるか含めないか。
ratio割合(パーセント)を含めるか含めないか。

以下、関数getSuumaryTableのソースコードになります(getSummaryTable中に未定義の関数があるため、コピペしても使えないことに注意としてください)。

 

使用例

関数getSummaryTableの使いかたをいくつか紹介します。

まず、データセットirisを集計する例についてみていきます。

irisSpeciesに関してSepal.Length、Sepal.Width、Petal.Length、Petal.Widthの平均と標準偏差を得たい場合、次のように引数を与えます。

縦方向にSepal.Length、Sepal.Width、Petal.Length、Petal.Width、横方向にSpeciesの水準が並び、各水準、データごとの平均値標準偏差が計算されます。

また、次のように引数locationParを変更することで、位置母数を平均値以外に変えることができます。

ポイント

次の実行結果は最頻値を算出しており、スタージェスの公式に分割された区間または度数の最頻値を算出しています(各データの数が30以上かつ階級数が7以上の場合、データを区間に分割する)。



Bostonの住宅価格のようなより大きなデータセットも一瞬で集計することが可能です。

まず、Bostonのデータセットを使うためにパッケージMASSを用意します。

dataは次のような住宅価格に関するデータから構成されたいます。

カテゴリカルデータがnumeric型となっているため、次を実行しカテゴリカルデータをfactor型に変更してあげます。

データ整形が終わったので、早速カテゴリカルデータradに関してデータセットを集計してみましょう。

次のようにgetSummaryTableを実行することで集計表が一瞬で作成できます。引数にQu = TRUE, ratio = TRUEを追加したことで、numeric型のデータの集計に第1四部位数第3四部位数、factor型のデータの主計に割合の項目が追加されます。

まとめ

R言語で集計表を作成してくれる関数を実装してみました。

今回紹介した関数を用いれば、面倒でかつ時間のかかるデータの集計があっという間に終わってしまいます。

この記事の上で紹介したパッケージをインストールすれば紹介した関数を使えるようになります。

スポンサーリンク

  • この記事を書いた人
  • 最新記事

usagi-san

統計学とゲームとかをメインに解説していくよ。 数式とかプログラミングコードにミスがあったり質問があったりする場合はコメントで受け付けます。すぐに対応します。

-R言語
-,