メンバーシップの確認

Rでのデータクリーニング

Maggie Matsui

Content Developer @ DataCamp

カテゴリデータ

  • カテゴリ変数は取りうる値の集合が固定で既知です
データ 例の値
婚姻状況 unmarriedmarried
世帯収入カテゴリ 0-20K20-40K、...
Tシャツサイズ SMLXL
Rでのデータクリーニング

ファクター

  • factor では各カテゴリは数値で格納され、対応するラベルを持ちます
データ ラベル 数値表現
婚姻状況 unmarriedmarried 12
世帯収入カテゴリ 0-20K20-40K、... 12、...
Tシャツサイズ SMLXL 1234
Rでのデータクリーニング

ファクターレベル

tshirt_size
L  XL XL L  M  M  M  L  XL L  S  M  M  S  S  M  XL S  L  S ... 
Levels: S M L XL
levels(tshirt_size)
"S"  "M"  "L"  "XL"
Rでのデータクリーニング

含まれない値

  • factor には事前定義外の値は入りません
データ レベル 不可
婚姻状況 unmarriedmarried divorced
世帯収入カテゴリ 0-20K20-40K、... 10-30K
Tシャツサイズ SMLXL S/M
Rでのデータクリーニング

なぜこうした値が生じるのか?

 

左: データ入力エラー(自由入力のテキストボックスとドロップダウン)。右: パースエラー(データベース)。

Rでのデータクリーニング

フィルタリング結合: おさらい

  • 最初のテーブルの観測を列追加なしで保持・除外します

タイトル: セミジョイン。サブタイトル: X のうち Y にもある観測は? 左に値 a, b, c の1列テーブル X、右に値 a, c, d の1列テーブル Y。各テーブルの a と c が線で結ばれ、X の a と c のセルが強調表示。

Rでのデータクリーニング

フィルタリング結合: おさらい

  • 最初のテーブルの観測を列追加なしで保持・除外します

タイトル: アンチジョイン。サブタイトル: X のうち Y にない観測は? 左に値 a, b, c の1列テーブル X、右に値 a, c, d の1列テーブル Y。各テーブルの a と c が線で結ばれ、X の b のセルが強調表示。

Rでのデータクリーニング

血液型の例

study_data
      name   birthday blood_type
1     Beth 2019-10-20         B-
2 Ignatius 2020-07-08         A-
3     Paul 2019-08-12         O+
4    Helen 2019-03-17         O-
5 Jennifer 2019-12-17         Z+
6  Kennedy 2020-04-27         A+
7    Keith 2019-04-19        AB+
blood_types
  blood_type
1         O-
2         O+
3         A-
4         A+
5         B+
6         B-
7        AB+
8        AB-
Rでのデータクリーニング

血液型の例

study_data
      name   birthday blood_type
1     Beth 2019-10-20         B-
2 Ignatius 2020-07-08         A-
3     Paul 2019-08-12         O+
4    Helen 2019-03-17         O-
5 Jennifer 2019-12-17         Z+  <--
6  Kennedy 2020-04-27         A+
7    Keith 2019-04-19        AB+
blood_types
  blood_type
1         O-
2         O+
3         A-
4         A+
5         B+
6         B-
7        AB+
8        AB-
Rでのデータクリーニング

非メンバーの特定

ベン図。左円は study_data、右円は blood_types。左側に Z+。中央に A-、O-、AB+、A+、O+、B-。右側に B+ と AB-。左の Z+ は赤色。

Rでのデータクリーニング

アンチジョイン

study_data %>%
  anti_join(blood_types, by = "blood_type")
      name   birthday blood_type
1 Jennifer 2019-12-17         Z+
Rでのデータクリーニング

非メンバーの除去

ベン図。左円は study_data、右円は blood_types。左側に Z+。中央に A-、O-、AB+、A+、O+、B-。右側に B+ と AB-。中央の血液型が青。

Rでのデータクリーニング

セミジョイン

study_data %>%
  semi_join(blood_types, by = "blood_type")
      name   birthday blood_type
1     Beth 2019-10-20         B-
2 Ignatius 2020-07-08         A-
3     Paul 2019-08-12         O+
4    Helen 2019-03-17         O-
5  Kennedy 2020-04-27         A+
6    Keith 2019-04-19        AB+
Rでのデータクリーニング

練習してみましょう!

Rでのデータクリーニング

Preparing Video For Download...