Rで出現回数を数えて棒グラフを作る方法

目次

概要

私は普段、R言語を使って統計をするのですが、その際によく、集めたデータの傾向を知るためにヒストグラムや棒グラフを作成します。

今回Rで離散的な値の出現回数を数えて棒グラフで示そうとして、少し悩んでしまったので、私がこのような棒グラフを作成したのかを紹介します。

ヒストグラムと棒グラフ

棒グラフと似たものに、ヒストグラムがあります。

ヒストグラムでは、どのようなデータがいくつ回答されているのかを図で示すことができます。こうすることで、視覚的にデータの傾向が分かるため、私は統計をするうえで、データを集めた後にすぐ確認しています。

Rではヒストグラムを作るための機能が標準で用意されていたり、ggplot2などを用いたりすることで簡単に利用できたりします。

しかし、このようなヒストグラムは連続値を図で示すもので、アンケートの回答など離散値を示すのには不適切です。

離散的な値を示すときには、棒グラフを使って示すことになるのですが、残念なことに、出現回数を数えて棒グラフにすぐに示すというような関数は見当たりませんでした。

今回は、私が苦労の末に導き出した、アンケートのデータなどの離散的な値をヒストグラムでなるべくきれいに図示する方法を紹介します。

作成方法

私が調べながら、作成したヒストグラムの作成プログラムは次のようなものです。

data = data.frame()
data.table = table(factor(data[, 1], levels=1:5))
barplot(
    d1.table
)

ヒストグラムで示したいデータはdata変数にデータフレームの形式で保存しています。1から5の5件法で聞いたアンケートの結果が代入されていることを想定しています。

重要な部分は、table関数で1から5の値の数を数えているところです。これによって、次のbarplot関数で数えた結果を図示しています。table関数は、それぞれの回答の出現回数を数えるために利用しています。

table関数の引数にlevels=1:5とあります。これは、1から5の値を数えるということを示しています。なぜこのようにしているのかというと、5件法で聞いているからと言って、必ず結果に1から5の値が出現するわけではなく、例えば2から5の値しか出現しないということも考えられます。そのような場合には、barplot関数で図示したときに2から5しか図に出てこなくなるため、それを防ぐ目的でこのようにしています。

このようにすることで、出現回数の結果を棒グラフとして出力できるようになりました。

さいごに

Rは統計のためのツールとして、様々なことができとても便利なのですが、たまに自分自身で関数を用意したり、既存の関数を調べながら組み合わせたりする必要があるため、大変と思うときがあります。

集めたデータの傾向を知ることはとても大切なことですので、今後もこのような方法を用いて統計の腕を磨いていければと思います。