4. 分布の確認
要約統計量が確認できたら、分析を行ううえで目的変数(被説明変数)となる「売り上げ」や「価格」などの分布を確認するためにヒストグラム(histogram)を描きます。目的変数については本講座シリーズの過去記事を参照してください。
ヒストグラムの描画には、「hist()」を使います。かっこ内にデータを表す変数「data」と、描画したい変数名「sales」を指定します。
「$」はデータの列名を指定する記号です。「breaks」という引数で、データを棒グラフとして表示する際の棒の本数を指定できます。他にも「plot()」関数を使えば、散布図や折れ線グラフを描くことができます。
5. データの前処理
前回解説したように、分析に入る前に欠かせないのが「データの前処理」です。
前処理にはデータの結合や重複削除、欠損値処理などがあります。今回は重複しているデータがないか確認し、欠損値が含まれている行を除外しましょう。
まずは重複しているデータの確認です。重複を調べたい列に対して「unique()」関数を適用すると、「重複していないデータ」だけを取り出せます。今回は「unique(data)」を用いて、データ全体から重複していない部分を探しています。重複しているデータはなかったので、「unique(data)」の結果として全ての行が表示されました(以下では全体の一部、1行目から8行目までを表示しています)。
また、「duplicated()」関数でデータの重複を確かめる方法もあります。データが重複していれば「TRUE」、重複していなければ「FALSE」を返す関数です。
今回の例では重複しているデータはないので、「duplicated()」の結果は全部「FALSE」となります。以下を見ると、29行分、29個の「FALSE」が表示されているのが分かるでしょう。
続いて、欠損値を確認・除外しましょう。欠損値処理の方法はいろいろありますが、ここでは欠損値を除外します。「na.omit()」関数でかっこ内に除外したいデータの変数「data」を入力すれば、欠損値を除外できます。さらに、ここでは「<-」(矢印)を使って「data」変数に欠損値を除外済みのデータを代入し直します。その後で「dim(data)」を実行すると、欠損値が含まれていないデータは23行だと分かります。
ちなみに、データを結合する場合は「merge()」関数を使います。「id」などの変数名をキーとして、2つ以上のテーブル型のデータを結合します。