Bài tập ngày 21/10/2025

Đây là phần chú thích

Vào tab code, chon insert Chunk để nhậplệnh R

ob=read.csv("D:\\Download\\Obesity data.csv")
head(ob)
##   id gender height weight  bmi age WBBMC wbbmd   fat  lean pcfat hypertension
## 1  1      F    150     49 21.8  53  1312  0.88 17802 28600  37.3            0
## 2  2      M    165     52 19.1  65  1309  0.84  8381 40229  16.8            1
## 3  3      F    157     57 23.1  64  1230  0.84 19221 36057  34.0            1
## 4  4      F    156     53 21.8  56  1171  0.80 17472 33094  33.8            1
## 5  5      M    160     51 19.9  54  1681  0.98  7336 40621  14.8            0
## 6  6      F    153     47 20.1  52  1358  0.91 14904 30068  32.2            1
##   diabetes
## 1        1
## 2        0
## 3        0
## 4        0
## 5        0
## 6        0
tail(ob)
##        id gender height weight  bmi age WBBMC wbbmd   fat  lean pcfat
## 1212 1222      F    153     50 21.4  59  1309  0.87 18328 29147  37.6
## 1213 1223      F    150     44 19.6  44  1474  0.95 12906 28534  30.1
## 1214 1224      F    148     51 23.3  58  1522  0.97 14938 33931  29.6
## 1215 1225      F    149     50 22.5  57  1409  0.93 16777 30598  34.4
## 1216 1226      F    144     49 23.6  67  1266  0.90 20094 27272  41.3
## 1217 1227      F    141     45 22.6  58  1228  0.91 14567 28111  33.2
##      hypertension diabetes
## 1212            1        0
## 1213            0        1
## 1214            0        0
## 1215            1        0
## 1216            1        0
## 1217            0        0

Thêm trường sex =0 Nam; sex =1 Nữ

ob$sex[ob$gender =="M"] = 0
ob$sex[ob$gender =="F"] = 1
head(ob)
##   id gender height weight  bmi age WBBMC wbbmd   fat  lean pcfat hypertension
## 1  1      F    150     49 21.8  53  1312  0.88 17802 28600  37.3            0
## 2  2      M    165     52 19.1  65  1309  0.84  8381 40229  16.8            1
## 3  3      F    157     57 23.1  64  1230  0.84 19221 36057  34.0            1
## 4  4      F    156     53 21.8  56  1171  0.80 17472 33094  33.8            1
## 5  5      M    160     51 19.9  54  1681  0.98  7336 40621  14.8            0
## 6  6      F    153     47 20.1  52  1358  0.91 14904 30068  32.2            1
##   diabetes sex
## 1        1   1
## 2        0   0
## 3        0   1
## 4        0   1
## 5        0   0
## 6        0   1

Tạo biến obese với các điều kiện:

bmi<18.5: Thiếu cân

18.5 <= bmi < 25.0 Bình thường

25.0 <= bmi < 30 Thừa cân

bmi>=30: béo phì

ob$obese[ob$bmi <18.5]="Thiếu cân"
ob$obese[18.5>= ob$bmi & ob$bmi <25]="Bình thường"
ob$obese[25>= ob$bmi & ob$bmi <30]="Thừa cân"
ob$obese[ob$bmi >=30]="Béo phì"
head(ob,20)
##    id gender height weight  bmi age WBBMC wbbmd   fat  lean pcfat hypertension
## 1   1      F    150     49 21.8  53  1312  0.88 17802 28600  37.3            0
## 2   2      M    165     52 19.1  65  1309  0.84  8381 40229  16.8            1
## 3   3      F    157     57 23.1  64  1230  0.84 19221 36057  34.0            1
## 4   4      F    156     53 21.8  56  1171  0.80 17472 33094  33.8            1
## 5   5      M    160     51 19.9  54  1681  0.98  7336 40621  14.8            0
## 6   6      F    153     47 20.1  52  1358  0.91 14904 30068  32.2            1
## 7   7      F    155     58 24.1  66  1546  0.96 20233 35599  35.3            1
## 8   8      M    167     65 23.3  50  2276  1.11 17749 43301  28.0            1
## 9   9      M    165     54 19.8  61  1778  0.96 10795 38613  21.1            0
## 10 10      F    158     60 24.0  58  1404  0.86 21365 35534  36.6            1
## 11 11      F    155     48 20.0  36  1889  1.06 13458 32261  28.3            1
## 12 12      M    165     65 23.9  50  1878  0.97 18100 43391  28.6            1
## 13 13      F    155     40 16.6  78  1001  0.78 11865 26264  30.3            1
## 14 14      M    158     57 22.8  84  1772  1.02 13398 40313  24.1            1
## 15 15      F    154     59 24.9  43  1717  1.03 19154 37239  33.0            0
## 16 16      M    150     70 31.1  49  2084  1.00 16540 49512  24.3            1
## 17 17      F    150     50 22.2  49  1636  1.01 20255 27891  40.7            1
## 18 18      M    158     65 26.0  49  2557  1.29 11716 45567  19.6            1
## 19 19      M    162     72 27.4  66  1535  0.86 25416 44577  35.5            1
## 20 20      M    161     55 21.2  58  1807  1.02 10020 40184  19.3            1
##    diabetes sex    obese
## 1         1   1 Thừa cân
## 2         0   0 Thừa cân
## 3         0   1 Thừa cân
## 4         0   1 Thừa cân
## 5         0   0 Thừa cân
## 6         0   1 Thừa cân
## 7         1   1 Thừa cân
## 8         1   0 Thừa cân
## 9         0   0 Thừa cân
## 10        0   1 Thừa cân
## 11        0   1 Thừa cân
## 12        0   0 Thừa cân
## 13        0   1 Thừa cân
## 14        0   0 Thừa cân
## 15        1   1 Thừa cân
## 16        0   0  Béo phì
## 17        0   1 Thừa cân
## 18        0   0     <NA>
## 19        0   0     <NA>
## 20        0   0 Thừa cân

Tạo biến mới lean.kg =lean /1000 và fat.kg =fat /1000

ob$lean.kg=ob$lean /1000
ob$fat.kg=ob$fat /1000
head(ob)
##   id gender height weight  bmi age WBBMC wbbmd   fat  lean pcfat hypertension
## 1  1      F    150     49 21.8  53  1312  0.88 17802 28600  37.3            0
## 2  2      M    165     52 19.1  65  1309  0.84  8381 40229  16.8            1
## 3  3      F    157     57 23.1  64  1230  0.84 19221 36057  34.0            1
## 4  4      F    156     53 21.8  56  1171  0.80 17472 33094  33.8            1
## 5  5      M    160     51 19.9  54  1681  0.98  7336 40621  14.8            0
## 6  6      F    153     47 20.1  52  1358  0.91 14904 30068  32.2            1
##   diabetes sex    obese lean.kg fat.kg
## 1        1   1 Thừa cân  28.600 17.802
## 2        0   0 Thừa cân  40.229  8.381
## 3        0   1 Thừa cân  36.057 19.221
## 4        0   1 Thừa cân  33.094 17.472
## 5        0   0 Thừa cân  40.621  7.336
## 6        0   1 Thừa cân  30.068 14.904

Trích dữ liệu Nam giới thừa cân và Nam giới béo phì

men.overweight <- subset(ob,ob$bmi>=25 & ob$bmi<30 & ob$gender =='M')
men.obese <- ob[ob$gender =='M' & ob$bmi>=30,]
men.overweight.obese <- subset(ob, ob$bmi>=25  & ob$gender== 'M')
head(men.overweight)
##      id gender height weight  bmi age WBBMC wbbmd   fat  lean pcfat
## 18   18      M    158     65 26.0  49  2557  1.29 11716 45567  19.6
## 19   19      M    162     72 27.4  66  1535  0.86 25416 44577  35.5
## 26   26      M    172     78 26.4  52  1991  0.95 19772 55200  25.7
## 40   40      M    171     75 25.6  51  2192  1.13 18188 51801  25.2
## 69   69      M    168     80 28.3  53  2043  1.06 17907 54594  24.0
## 106 107      M    170     75 26.0  45  2109  1.02 20800 51061  28.1
##     hypertension diabetes sex obese lean.kg fat.kg
## 18             1        0   0  <NA>  45.567 11.716
## 19             1        0   0  <NA>  44.577 25.416
## 26             0        0   0  <NA>  55.200 19.772
## 40             1        0   0  <NA>  51.801 18.188
## 69             0        0   0  <NA>  54.594 17.907
## 106            1        1   0  <NA>  51.061 20.800
head(men.obese)
##      id gender height weight  bmi age WBBMC wbbmd   fat  lean pcfat
## 16   16      M    150     70 31.1  49  2084  1.00 16540 49512  24.3
## 377 381      M    148     76 34.7  40  2395  1.12 20187 52455  26.9
## 891 898      M    172     95 32.1  41  2409  1.10 28220 63059  30.1
## 921 929      M    165     82 30.1  18  2236  1.07 26197 52518  32.4
##     hypertension diabetes sex   obese lean.kg fat.kg
## 16             1        0   0 Béo phì  49.512 16.540
## 377            0        0   0 Béo phì  52.455 20.187
## 891            1        0   0 Béo phì  63.059 28.220
## 921            0        0   0 Béo phì  52.518 26.197
head(men.overweight.obese)
##    id gender height weight  bmi age WBBMC wbbmd   fat  lean pcfat hypertension
## 16 16      M    150     70 31.1  49  2084  1.00 16540 49512  24.3            1
## 18 18      M    158     65 26.0  49  2557  1.29 11716 45567  19.6            1
## 19 19      M    162     72 27.4  66  1535  0.86 25416 44577  35.5            1
## 26 26      M    172     78 26.4  52  1991  0.95 19772 55200  25.7            0
## 40 40      M    171     75 25.6  51  2192  1.13 18188 51801  25.2            1
## 69 69      M    168     80 28.3  53  2043  1.06 17907 54594  24.0            0
##    diabetes sex   obese lean.kg fat.kg
## 16        0   0 Béo phì  49.512 16.540
## 18        0   0    <NA>  45.567 11.716
## 19        0   0    <NA>  44.577 25.416
## 26        0   0    <NA>  55.200 19.772
## 40        0   0    <NA>  51.801 18.188
## 69        0   0    <NA>  54.594 17.907
dim(men.overweight.obese)
## [1] 85 17

Tạo têp dữ liệu Demo và Demo.men có điều kiên

Demo <- subset(ob, select = c(id, age, gender, height, weight, pcfat))
Demo.men <- subset(ob, ob$gender =='M', select = c(id, age, gender, height, weight, pcfat))
head(Demo)
##   id age gender height weight pcfat
## 1  1  53      F    150     49  37.3
## 2  2  65      M    165     52  16.8
## 3  3  64      F    157     57  34.0
## 4  4  56      F    156     53  33.8
## 5  5  54      M    160     51  14.8
## 6  6  52      F    153     47  32.2
head(Demo.men)
##    id age gender height weight pcfat
## 2   2  65      M    165     52  16.8
## 5   5  54      M    160     51  14.8
## 8   8  50      M    167     65  28.0
## 9   9  61      M    165     54  21.1
## 12 12  50      M    165     65  28.6
## 14 14  84      M    158     57  24.1