Basic R Series 4 - Biến đổi số liệu (RECODE) tạo biến mới trong R

  

1. Chúng ta sẽ sử dụng bộ số liệu shapiro làm ví dụ, bộ số liệu này bao gồm một số biến số

MI Nhồi máu cơ tim

OC Sử dụng thuốc tránh thai

SMOKE Hút thuốc

AGEGROUP Nhóm tuổi

AGEMID Tuổi

shapiro
## # A tibble: 1,976 × 5
##    MI        OC        SMOKE     AGEGROUP AGEMID    
##    <dbl+lbl> <dbl+lbl> <dbl+lbl>    <dbl> <dbl+lbl> 
##  1 0 [No]    0 [No]    0 [None]         1 27 [25-29]
##  2 0 [No]    0 [No]    0 [None]         5 47 [45-49]
##  3 0 [No]    0 [No]    0 [None]         3 37 [35-39]
##  4 0 [No]    0 [No]    0 [None]         2 32 [30-34]
##  5 0 [No]    1 [Yes]   0 [None]         4 42 [40-44]
##  6 0 [No]    0 [No]    0 [None]         3 37 [35-39]
##  7 0 [No]    0 [No]    0 [None]         1 27 [25-29]
##  8 0 [No]    0 [No]    0 [None]         2 32 [30-34]
##  9 1 [Yes]   0 [No]    0 [None]         5 47 [45-49]
## 10 0 [No]    0 [No]    0 [None]         2 32 [30-34]
## # … with 1,966 more rows

2. RECODE số liệu, tạo biến mới

Trong bộ số liệu gốc, biến OC được mã hóa 1 là có và 0 là không.

library(summarytools)
freq(OC)
## Frequencies  
## OC  
## Label: Oral contraceptive use  
## Type: Numeric  
## 
##               Freq   % Valid   % Valid Cum.   % Total   % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
##           0   1812     91.70          91.70     91.70          91.70
##           1    164      8.30         100.00      8.30         100.00
##        <NA>      0                               0.00         100.00
##       Total   1976    100.00         100.00    100.00         100.00

Ví dụ, chúng ta muốn tạo ra một biến mới và mã hóa 1 là có và 2 là không. Chúng ta thực hiện như sau:

shapiro$thuoctranhthai[shapiro$OC == 1] <- 1
shapiro$thuoctranhthai[shapiro$OC == 0] <- 2

Trong đoạn code trên shapiro là tên bộ số liệu ta đang làm việc trên nó, và khi tạo ra biến mới thuoctranhthai thì biến này cũng sẽ được bổ sung vào bộ số liệu shapiro luôn.

Và cùng xem kết quả.

shapiro
## # A tibble: 1,976 × 6
##    MI        OC        SMOKE     AGEGROUP AGEMID     thuoctranhthai
##    <dbl+lbl> <dbl+lbl> <dbl+lbl>    <dbl> <dbl+lbl>           <dbl>
##  1 0 [No]    0 [No]    0 [None]         1 27 [25-29]              2
##  2 0 [No]    0 [No]    0 [None]         5 47 [45-49]              2
##  3 0 [No]    0 [No]    0 [None]         3 37 [35-39]              2
##  4 0 [No]    0 [No]    0 [None]         2 32 [30-34]              2
##  5 0 [No]    1 [Yes]   0 [None]         4 42 [40-44]              1
##  6 0 [No]    0 [No]    0 [None]         3 37 [35-39]              2
##  7 0 [No]    0 [No]    0 [None]         1 27 [25-29]              2
##  8 0 [No]    0 [No]    0 [None]         2 32 [30-34]              2
##  9 1 [Yes]   0 [No]    0 [None]         5 47 [45-49]              2
## 10 0 [No]    0 [No]    0 [None]         2 32 [30-34]              2
## # … with 1,966 more rows

sau khi tạo biến mới thì chúng ta sẽ gán nhãn biến và nhãn giá trị cho biến số đó. Các bạn có thể tham khảo bài đăng trước đây của tôi theo đường link dưới đây: https://caobakhuong.blogspot.com/2023/01/huong-dan-gan-nhan-gia-tri-cua-bien.html

Nhận xét

Bài đăng phổ biến từ blog này

EPIDATA 3.1- Phần mềm thống kê Y sinh học

Phân tích bảng chéo Crosstabs trong SPSS

Download SPSS MAC - Cài SPSS cho Macbook