Factor là kiểu biến trong R dùng cho biến phân loại (categorical), lưu trữ dữ liệu theo các level. Chức năng chính của nó thường thấy trong phân tích dữ liệu, đặc biệt là phân tích thống kê. Ngoài ra, nó giúp giảm dư thừa dữ liệu và tiết kiệm đáng kể bộ nhớ.
Lưu ý: Biến phân loại là những biến nhận giá trị dựa trên nhãn hoặc tên. Ví dụ, nhóm máu của con người có thể là A, B, AB hoặc O.
hàm factor
Cách dùng: Phân loại dữ liệu có ít giá trị khác nhau. Tham số: factor(v): v có thể là một vector giá trị.
Hãy xem ví dụ về factor trong thực tế.
Bạn có thể xem đoạn mã dưới đây, nơi có hai biến phân loại là "Male" và "Female", còn gọi là các giá trị factor.
gender <- c("Male","Female","Female","Male","Female")Được hỗ trợ bởi
Hãy tạo một factor cho biến gender bằng cách dùng 'factor(gender)' và lưu vào biến 'gender.factor'.
gender.factor <- factor(gender)
gender.factor
Được hỗ trợ bởi
Male
Female
Female
Male
Female
Levels:
'Female'
'Male'
Đoạn mã trên cho ra kết quả như dưới đây:
Male Female Female Male Female
Levels:'Female''Male'Được hỗ trợ bởi
Bạn có thể thấy các giá trị được in ra giống hệt vector đầu vào. Ngoài ra, các 'Levels' là 'Female' và 'Male' được sắp theo thứ tự bảng chữ cái.
Cấu trúc của hàm factor
Hãy kiểm tra cấu trúc của factor bằng cách dùng 'str(gender.factor)' trong đoạn mã dưới.
Kết quả trên cho thấy có một factor với 2 level. factor chuyển vector ký tự gender thành một vector các giá trị số nguyên. "Female" là level thứ nhất được mã hóa là 1, còn "Male" là level thứ hai, mã hóa là 2.
Mục đích chính của việc mã hóa từ ký tự sang số là vì các hạng mục có thể lặp lại, gây dư thừa và tốn nhiều bộ nhớ. Sử dụng factor giúp giảm gánh nặng và tiết kiệm không gian bộ nhớ.
Thay đổi thứ tự Levels
Hãy thay đổi thứ tự levels để "Female" trở thành 2 và "Male" là 1.
Tạo một factor mới cho gender bằng cách thay đổi level của "Male" và "Female" bằng cách truyền vào vector cho tham số "levels". Cuối cùng, kết quả được lưu vào biến "gender.factor2".
gender.factor2 <- factor(gender,levels=c("Male","Female"))
gender.factor2
str(gender.factor2)Được hỗ trợ bởi
'gender.factor2' được in ra cùng với cấu trúc của nó dùng 'str(gender.factor2)', trong đó có thể thấy các thay đổi sau.
Male Female Female Male Female
Levels:'Male''Female'
Factor w/2 levels "Male","Female":12212Được hỗ trợ bởi
Kết quả cho thấy mã hóa của "Male" là 1 và "Female" là 2. Điều này khác với 'gender.factor', nơi thứ tự ngược lại.
Đổi tên các level của Factor
Hãy đổi tên các giá trị vector đầu vào bằng cách dùng 'levels' làm đối số thứ nhất với các giá trị "Male" và "Female" và các giá trị mong muốn sau khi đổi bằng 'labels' làm đối số thứ hai với "Gen_Male" và "Gen_Female" tương ứng.
factor(gender,levels = c("Male","Female"),labels = c("Gen_Male","Gen_Female"))Được hỗ trợ bởi
Gen_Male
Gen_Female
Gen_Female
Gen_Male
Gen_Female
Levels:
'Gen_Male'
'Gen_Female'
Gen_Male Gen_Female Gen_Female Gen_Male Gen_Female
Levels:'Gen_Male''Gen_Female'Được hỗ trợ bởi
Đoạn mã trên cho ra kết quả trong đó tên "Male" được đổi thành "Gen_Male" và "Female" thành "Gen_Female".
Sắp thứ tự một biến phân loại
Hãy xem một ví dụ khác với các giá trị phân loại có thứ bậc, nơi thứ tự có ý nghĩa. Ví dụ, kích cỡ quần có thể gồm Large là "L", Extra Large là "XL" và Extra extra Large là "XXL" được sắp theo thứ tự tăng dần. Đoạn mã dưới đây tạo một vector ký tự gồm "L", "XL" và "XXL" và lưu vào 'pant'. 'pant.factor' là biến có tham số levels được sắp tăng dần là 'levels = c("L", "XL", "XXL")' và cuối cùng 'ordered = TRUE', giúp bạn có thể so sánh theo thứ tự mong muốn.
Kết quả trên trước hết hiển thị các giá trị vector (XL, L, XL, XXL, L, XL) bằng 'pant.factor'. Các level 'L' < 'XL' < 'XXL' được sắp theo thứ tự tăng dần và được in ra trên console. Ngoài ra, 'pant.factor[1] > pant.factor[2]' so sánh xem "XL" có lớn hơn "L" hay không và trả về TRUE.
Chúc mừng
Chúc mừng bạn đã hoàn thành bài hướng dẫn này!
Trong hướng dẫn này, bạn đã tìm hiểu hàm factor trong R, kèm ví dụ, cấu trúc, thay đổi thứ tự level, đổi tên level và cuối cùng là sắp thứ tự các giá trị phân loại.
Nếu bạn muốn học thêm về R, hãy tham gia khóa học Giới thiệu về R của DataCamp.
Factor là kiểu biến trong R dùng cho biến phân loại (categorical), lưu trữ dữ liệu theo các level. Chức năng chính của nó thường thấy trong phân tích dữ liệu, đặc biệt là phân tích thống kê. Ngoài ra, nó giúp giảm dư thừa dữ liệu và tiết kiệm đáng kể bộ nhớ.
Lưu ý: Biến phân loại là những biến nhận giá trị dựa trên nhãn hoặc tên. Ví dụ, nhóm máu của con người có thể là A, B, AB hoặc O.
hàm factor
Cách dùng: Phân loại dữ liệu có ít giá trị khác nhau.
Tham số: factor(v): v có thể là một vector giá trị.
Hãy xem ví dụ về factor trong thực tế.
Bạn có thể xem đoạn mã dưới đây, nơi có hai biến phân loại là "Male" và "Female", còn gọi là các giá trị factor.
Hãy tạo một factor cho biến gender bằng cách dùng 'factor(gender)' và lưu vào biến 'gender.factor'.
Levels:
Đoạn mã trên cho ra kết quả như dưới đây:
Bạn có thể thấy các giá trị được in ra giống hệt vector đầu vào. Ngoài ra, các 'Levels' là 'Female' và 'Male' được sắp theo thứ tự bảng chữ cái.
Cấu trúc của hàm factor
Hãy kiểm tra cấu trúc của factor bằng cách dùng 'str(gender.factor)' trong đoạn mã dưới.
Kết quả trên cho thấy có một factor với 2 level. factor chuyển vector ký tự gender thành một vector các giá trị số nguyên. "Female" là level thứ nhất được mã hóa là 1, còn "Male" là level thứ hai, mã hóa là 2.
Mục đích chính của việc mã hóa từ ký tự sang số là vì các hạng mục có thể lặp lại, gây dư thừa và tốn nhiều bộ nhớ. Sử dụng factor giúp giảm gánh nặng và tiết kiệm không gian bộ nhớ.
Thay đổi thứ tự Levels
Hãy thay đổi thứ tự levels để "Female" trở thành 2 và "Male" là 1.
Tạo một factor mới cho gender bằng cách thay đổi level của "Male" và "Female" bằng cách truyền vào vector cho tham số "levels". Cuối cùng, kết quả được lưu vào biến "gender.factor2".
Levels:
'gender.factor2' được in ra cùng với cấu trúc của nó dùng 'str(gender.factor2)', trong đó có thể thấy các thay đổi sau.
Kết quả cho thấy mã hóa của "Male" là 1 và "Female" là 2. Điều này khác với 'gender.factor', nơi thứ tự ngược lại.
Đổi tên các level của Factor
Hãy đổi tên các giá trị vector đầu vào bằng cách dùng 'levels' làm đối số thứ nhất với các giá trị "Male" và "Female" và các giá trị mong muốn sau khi đổi bằng 'labels' làm đối số thứ hai với "Gen_Male" và "Gen_Female" tương ứng.
Levels:
Đoạn mã trên cho ra kết quả trong đó tên "Male" được đổi thành "Gen_Male" và "Female" thành "Gen_Female".
Sắp thứ tự một biến phân loại
Hãy xem một ví dụ khác với các giá trị phân loại có thứ bậc, nơi thứ tự có ý nghĩa. Ví dụ, kích cỡ quần có thể gồm Large là "L", Extra Large là "XL" và Extra extra Large là "XXL" được sắp theo thứ tự tăng dần. Đoạn mã dưới đây tạo một vector ký tự gồm "L", "XL" và "XXL" và lưu vào 'pant'. 'pant.factor' là biến có tham số levels được sắp tăng dần là 'levels = c("L", "XL", "XXL")' và cuối cùng 'ordered = TRUE', giúp bạn có thể so sánh theo thứ tự mong muốn.
Levels:
TRUE
Kết quả trên trước hết hiển thị các giá trị vector (XL, L, XL, XXL, L, XL) bằng 'pant.factor'. Các level 'L' < 'XL' < 'XXL' được sắp theo thứ tự tăng dần và được in ra trên console. Ngoài ra, 'pant.factor[1] > pant.factor[2]' so sánh xem "XL" có lớn hơn "L" hay không và trả về TRUE.
Chúc mừng
Chúc mừng bạn đã hoàn thành bài hướng dẫn này!
Trong hướng dẫn này, bạn đã tìm hiểu hàm factor trong R, kèm ví dụ, cấu trúc, thay đổi thứ tự level, đổi tên level và cuối cùng là sắp thứ tự các giá trị phân loại.
Nếu bạn muốn học thêm về R, hãy tham gia khóa học Giới thiệu về R của DataCamp.
Xem thêm hướng dẫn Sử dụng hàm trong R.