#install.packages(c("tidyverse", "dplyr", "lessR", "table1", "compareGroups", "ggplot2", "gridExtra", "ggthemes", "ggfortify", "simpleboot", "boot", "relaimpo", "carData", "caret", "BMA", "glmnet", "epiDisplay"), dependencies = T)
PROMPT: Đọc dữ liệu birthwt.csv vừa được uploaded vào R và đặt tên là bw.
# Đọc trực tiếp:
# Tìm đường dẫn với file.choose()
# t = file.choose()
# t
bw = read.csv("C:\\Thach\\VN trips\\2025_3Jun\\VNUHCM\\Datasets\\birthwt.csv")
# Đọc dữ liệu bằng lệnh "Import Dataset"
PROMPT: Có bao nhiêu biến số và quan sát trong dữ liệu bw
dim(bw)
## [1] 189 11
PROMPT: Liệt kê 6 quan sát đầu tiên
head(bw)
## id low age lwt race smoke ptl ht ui ftv bwt
## 1 85 0 19 182 2 0 0 0 1 0 2523
## 2 86 0 33 155 3 0 0 0 0 3 2551
## 3 87 0 20 105 1 1 0 0 0 1 2557
## 4 88 0 21 108 1 1 0 0 1 2 2594
## 5 89 0 18 107 1 1 0 0 1 0 2600
## 6 91 0 21 124 3 0 0 0 0 0 2622
PROMPT: Tạo biến số mới mwt là cân nặng của mẹ tính bằng kg từ biến số lwt tính bằng pound
bw$mwt = bw$lwt*0.453592
head(bw)
## id low age lwt race smoke ptl ht ui ftv bwt mwt
## 1 85 0 19 182 2 0 0 0 1 0 2523 82.55374
## 2 86 0 33 155 3 0 0 0 0 3 2551 70.30676
## 3 87 0 20 105 1 1 0 0 0 1 2557 47.62716
## 4 88 0 21 108 1 1 0 0 1 2 2594 48.98794
## 5 89 0 18 107 1 1 0 0 1 0 2600 48.53434
## 6 91 0 21 124 3 0 0 0 0 0 2622 56.24541
PROMPT: Tạo biến số mới ethnicity là biến factor với điều kiện sau: Nếu race = 1 thì ethnicity = “White” Nếu race = 2 thì ethnicity = “Black” Nếu race = 3 thì ethnicity = “Other”
bw$ethnicity <- factor(bw$race,
levels = c(1, 2, 3),
labels = c("White","Black", "Other"))
# hoặc
bw$ethnicity <- factor(
ifelse(bw$race == 1, "White",
ifelse(bw$race == 2, "Black", "Other"))
)
head(bw)
## id low age lwt race smoke ptl ht ui ftv bwt mwt ethnicity
## 1 85 0 19 182 2 0 0 0 1 0 2523 82.55374 Black
## 2 86 0 33 155 3 0 0 0 0 3 2551 70.30676 Other
## 3 87 0 20 105 1 1 0 0 0 1 2557 47.62716 White
## 4 88 0 21 108 1 1 0 0 1 2 2594 48.98794 White
## 5 89 0 18 107 1 1 0 0 1 0 2600 48.53434 White
## 6 91 0 21 124 3 0 0 0 0 0 2622 56.24541 Other
PROMPT: Tạo 1 tập dữ liệu bw1 chỉ gồm 3 biến số id, low và bwt. Dữ liệu này có bao nhiêu biến số và quan sát?
bw1 = bw[, c("id", "low", "bwt")]
dim(bw1)
## [1] 189 3
head(bw1)
## id low bwt
## 1 85 0 2523
## 2 86 0 2551
## 3 87 0 2557
## 4 88 0 2594
## 5 89 0 2600
## 6 91 0 2622
PROMPT: Tạo 1 tập dữ liệu bw2 chỉ gồm những thai phụ có cân nặng thấp (low = 1). Dữ liệu này có bao nhiêu biến số và quan sát
bw2 = subset(bw, low == 1)
# hoặc
bw2 <- bw[bw$low == 1, ]
dim(bw2)
## [1] 59 13
head(bw2)
## id low age lwt race smoke ptl ht ui ftv bwt mwt ethnicity
## 131 4 1 28 120 3 1 1 0 1 0 709 54.43104 Other
## 132 10 1 29 130 1 0 0 0 1 2 1021 58.96696 White
## 133 11 1 34 187 2 1 0 1 0 0 1135 84.82170 Black
## 134 13 1 25 105 3 0 1 1 0 0 1330 47.62716 Other
## 135 15 1 25 85 3 0 0 0 1 0 1474 38.55532 Other
## 136 16 1 27 150 3 0 0 0 0 0 1588 68.03880 Other
PROMPT: Tạo 1 tập dữ liệu bw3 chỉ gồm những thai phụ có cân nặng thấp (low = 1) và có hút thuốc trong lúc mang thai (smoke = 1). Dữ liệu này có bao nhiêu biến số và quan sát?
bw3 = subset(bw, low == 1 & smoke == 1)
# hoặc
bw3 <- bw[bw$low == 1 & bw$smoke == 1, ]
dim(bw3)
## [1] 30 13
head(bw3)
## id low age lwt race smoke ptl ht ui ftv bwt mwt ethnicity
## 131 4 1 28 120 3 1 1 0 1 0 709 54.43104 Other
## 133 11 1 34 187 2 1 0 1 0 0 1135 84.82170 Black
## 140 20 1 21 165 1 1 0 1 0 1 1790 74.84268 White
## 141 22 1 32 105 1 1 0 0 0 0 1818 47.62716 White
## 142 23 1 19 91 1 1 2 0 1 0 1885 41.27687 White
## 145 26 1 25 92 1 1 0 0 0 0 1928 41.73046 White
PROMPT: Sử dụng gói lệnh ‘table1’ mô tả đặc điểm tuổi của mẹ (age), cân nặng của mẹ (lwt) và cân nặng của con (bwt)
library(table1)
##
## Attaching package: 'table1'
## The following objects are masked from 'package:base':
##
## units, units<-
table1(~ age + lwt + bwt, data = bw)
Overall (N=189) |
|
---|---|
age | |
Mean (SD) | 23.2 (5.30) |
Median [Min, Max] | 23.0 [14.0, 45.0] |
lwt | |
Mean (SD) | 130 (30.6) |
Median [Min, Max] | 121 [80.0, 250] |
bwt | |
Mean (SD) | 2940 (729) |
Median [Min, Max] | 2980 [709, 4990] |
table1(~ age + lwt + bwt, data = bw, render.continuous = c(. = “Mean (SD)”, . = “Median [Q1, Q3]”, . = “Median [min, max]” ))
PROMPT: Sử dụng gói lệnh ‘table1’ mô tả đặc điểm tuổi mẹ, cân nặng mẹ, tình trạng hút thuốc trong thai kỳ, chủng tộc và cân nặng con theo tình trạng trẻ sanh thiếu cân
# Chuyển thành biến factor
bw$low <- factor(bw$low, levels = c(0, 1), labels = c("Normal weight", "Low birth weight"))
bw$smoke <- factor(bw$smoke, levels = c(0, 1), labels = c("Non-smoker", "Smoker"))
bw$race <- factor(bw$race, levels = c(1, 2, 3), labels = c("White", "Black", "Other"))
table1(~ age + lwt + smoke + race + bwt | low, data = bw)
Normal weight (N=130) |
Low birth weight (N=59) |
Overall (N=189) |
|
---|---|---|---|
age | |||
Mean (SD) | 23.7 (5.58) | 22.3 (4.51) | 23.2 (5.30) |
Median [Min, Max] | 23.0 [14.0, 45.0] | 22.0 [14.0, 34.0] | 23.0 [14.0, 45.0] |
lwt | |||
Mean (SD) | 133 (31.7) | 122 (26.6) | 130 (30.6) |
Median [Min, Max] | 124 [85.0, 250] | 120 [80.0, 200] | 121 [80.0, 250] |
smoke | |||
Non-smoker | 86 (66.2%) | 29 (49.2%) | 115 (60.8%) |
Smoker | 44 (33.8%) | 30 (50.8%) | 74 (39.2%) |
race | |||
White | 73 (56.2%) | 23 (39.0%) | 96 (50.8%) |
Black | 15 (11.5%) | 11 (18.6%) | 26 (13.8%) |
Other | 42 (32.3%) | 25 (42.4%) | 67 (35.4%) |
bwt | |||
Mean (SD) | 3330 (478) | 2100 (391) | 2940 (729) |
Median [Min, Max] | 3270 [2520, 4990] | 2210 [709, 2500] | 2980 [709, 4990] |