Chap4 データの加工

コンテンツ

4.1 データの加工とは?4.2 データの型4.3 基本操作4.4 新しいデータの作成

4.1 データの加工とは?

データが得られたら、分析しやすいようにデータを加工することが必要である。 データの加工とは、必要項目の追加、入力ミスの訂正、グループ分け(カテゴリー化)など、得られたデータを整理することである。 また、大量のデータから、その一部だけを抽出したり、複数のデータをまとめて1つのデータにする方ことでもある。

[一番上へ]

4.2 データの型

S-PLUSでは、次の8種類の型のデータ列を持つことができる。 列の要素はすべて、1つの型で統一される必要がある。

表4.1 データの型
character 文字列(ダブルクォーテーションでくくられる
complex 複素数
timeDate 日付
double 倍精度数値、およそ15桁の数値表現がされる
factor 因子
integer 整数
logical 論理値(T,F)
single 単精度数値、およそ7桁の数値表現がされる

Chapter3でインポートしたhyakkatenデータで各列のデータの型を確認する。 マウスカーソルを列の1番上、列番号に移動させる。 すると、吹き出しが現れ、"double"と、そのデータの型が表示される。

図4.1 データの型の確認

データの型の変更を行う。 まず、金額の列の型を小数から整数に変更する。 メニューバー データ / 列形式の変換 を選択すると、下図のようなダイアログが表示される。 下図のように設定をし、OKをクリックする。

図4.2 列形式の変換ダイアログ

同様の方法で、他の列も適切な型に変更する。

[一番上へ]

4.3 基本操作

列の追加・削除

Chapter3でインポートしたhyakkatenデータを使い、新しい列を追加する。 金額が50000円より高い商品にはT(真)を、それ以外の商品にはF(偽)を示す、論理値の列を作成する。 メニューバー 挿入 / 列 を選択すると、下図のようなダイアログが表示される。 下図のように設定をし、OKをクリックする。

図4.3 列の追加ダイアログ

次に、列の削除を行う。 削除したい列の上の灰色の部分で、右クリックする。 メニューから Cut を選択すれば、列を削除できる。

図4.4 列の削除

ソート

hyakkatenデータを用いる。 金額を選択し、ツールバーの昇順で並べ替え、あるいは降順で並べ替えボタンをクリックする。

図4.5 ソート

グループ分け(カテゴリー化)

hyakkatenデータの金額を用いる。 金額データは数値であるが、これを、1万円、3万円、5万円、10万円を区切りにした因子データにする。 その際、下表のように金額帯を設定する。

表4.2 金額帯
廉価 0円〜10000円
低価格 10000円〜30000円
中価格 30000円〜50000円
高価格 50000円〜100000円
超高価格100000円以上

メニューバー データ / 数値を因子に変換 を選択すると、下図のようなダイアログが表示される。 下図のように設定をし、OKをクリックする。

図4.6 数値を因子に変換ダイアログ

金額帯列を選択し、右クリックをし Properties を選択すると、下図のようなダイアログが表示される。 下図のように設定をし、OKをクリックする。

図4.7 金額帯の設定
[一番上へ]

4.4 新しいデータの作成

データの抽出

4.3で作成したhyakkatenデータの高価格がTのデータを抽出する。 メニューバー データ / 行の部分集合 を選択すると、下図のようなダイアログが表示される。 下図のように設定をし、OKをクリックする。

図4.8 行の部分集合ダイアログ

データの結合

解析に使いたいデータが複数のファイルになっていることがある。 これを結合して、1つのデータにする。 ここでは、hyakkaten1.csvとhyakkaten2.csv を結合して、1つのデータにする。 金額が一致したデータを1つのデータとする。 以下から、ダウンロードしてS-PLUSにインポートしてみよう。

hakkaten1.csvhakkaten2.csv

メニューバー データ / マージ を選択すると、下図のようなダイアログが表示される。 下図のように設定をし、OKをクリックする。

図4.9 データの分割ダイアログ

データの分割

4.3で作成したhyakkatenデータの金額帯という列データによって、データを分割する。 メニューバー データ / 行の分割 を選択すると、下図のようなダイアログが表示される。 下図のように設定をし、OKをクリックする。

図4.10 データの分割ダイアログ
[一番上へ]