Kiểm tra tư cách thành viên

Làm sạch dữ liệu trong R

Maggie Matsui

Content Developer @ DataCamp

Dữ liệu phân loại

  • Biến phân loại có tập giá trị khả dĩ cố định và đã biết
Dữ liệu Giá trị ví dụ
Tình trạng hôn nhân unmarried, married
Nhóm thu nhập hộ gia đình 0-20K, 20-40K, ...
Cỡ áo thun S, M, L, XL
Làm sạch dữ liệu trong R

Factor

  • Trong factor, mỗi hạng mục được lưu bằng số và có nhãn tương ứng
Dữ liệu Nhãn Biểu diễn số
Tình trạng hôn nhân unmarried, married 1, 2
Nhóm thu nhập hộ gia đình 0-20K, 20-40K, ... 1, 2, ...
Cỡ áo thun S, M, L, XL 1, 2, 3, 4
Làm sạch dữ liệu trong R

Mức của factor

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"
Làm sạch dữ liệu trong R

Giá trị không thuộc tập

  • factor không thể có giá trị nằm ngoài tập đã định trước
Dữ liệu Mức Không hợp lệ
Tình trạng hôn nhân unmarried, married divorced
Nhóm thu nhập hộ gia đình 0-20K, 20-40K, ... 10-30K
Cỡ áo thun S, M, L, XL S/M
Làm sạch dữ liệu trong R

Vì sao xuất hiện các giá trị này?

 

Bên trái: Lỗi nhập liệu, gồm ô nhập văn bản tự do và menu thả xuống. Bên phải: Lỗi phân tách, minh họa bằng cơ sở dữ liệu.

Làm sạch dữ liệu trong R

Filtering joins: ôn nhanh

  • Giữ hoặc loại bỏ quan sát từ bảng thứ nhất mà không thêm cột

Tiêu đề: Semi-join. Phụ đề: Quan sát nào của X cũng có trong Y? Bên trái, bảng một cột tên X với giá trị a, b, c. Bên phải, bảng một cột tên Y với giá trị a, c, d. Các giá trị a và c ở mỗi bảng được nối bằng đường kẻ. Trong X, ô cho a và c được tô sáng.

Làm sạch dữ liệu trong R

Filtering joins: ôn nhanh

  • Giữ hoặc loại bỏ quan sát từ bảng thứ nhất mà không thêm cột

Tiêu đề: Anti-join. Phụ đề: Quan sát nào của X không có trong Y? Bên trái, bảng một cột tên X với giá trị a, b, c. Bên phải, bảng một cột tên Y với giá trị a, c, d. Các giá trị a và c ở mỗi bảng được nối bằng đường kẻ. Trong X, ô cho b được tô sáng.

Làm sạch dữ liệu trong R

Ví dụ nhóm máu

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-
Làm sạch dữ liệu trong R

Ví dụ nhóm máu

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-
Làm sạch dữ liệu trong R

Tìm phần không thuộc

Sơ đồ Venn. Hình tròn trái là study_data và hình tròn phải là blood_types. Bên trái có Z+. Phần giao có A-, O-, AB+, A+, O+, và B-. Bên phải có B+ và AB-. Z+ bên trái màu đỏ.

Làm sạch dữ liệu trong R

Anti-join

study_data %>%
  anti_join(blood_types, by = "blood_type")
      name   birthday blood_type
1 Jennifer 2019-12-17         Z+
Làm sạch dữ liệu trong R

Loại bỏ phần không thuộc

Sơ đồ Venn. Hình tròn trái là study_data và hình tròn phải là blood_types. Bên trái có Z+. Phần giao có A-, O-, AB+, A+, O+, và B-. Bên phải có B+ và AB-. Các nhóm máu ở phần giao có màu xanh.

Làm sạch dữ liệu trong R

Semi-join

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+
Làm sạch dữ liệu trong R

Ayo berlatih!

Làm sạch dữ liệu trong R

Preparing Video For Download...