“21:20:36, 20 - 01 - 2024”
Thực hiện thao tác một số lệnh cơ bản và rút trích dữ liệu từ File Excel “Các yếu tố nguy cơ gây gãy xương.xlsx”. File Excel này phân tích các yếu tố có nguy cơ gây gãy xương.
id: Mã số bệnh nhân (139 bệnh nhân)
fx: Có/Không gãy xương
age: Tuổi
bmi: Body mass index (tính bằng trong lượng/chiều cao)
bmd: Bord mineral (Mật độ chất khoáng trong xương)
ictp: Chỉ số sinh hóa đo lường hoạt tính xương
pinp: Chỉ số sinh hóa đo lường hoạt tính xương
#KIỂM TRA 'nv2' CÓ PHẢI DATA FRAME HAY KHÔNG. NẾU ĐÚNG THÌ TRẢ KẾT QUẢ LÀ TRUE VÀ NGƯỢC LẠI
is.data.frame(ltn) ## [1] TRUE
## [1] 9
## [1] "id" "fx" "age" "bmi" "bmd" "ictp" "pinp" "NA." "NA..1"
## [1] 139 9
| Name | ltn |
| Number of rows | 139 |
| Number of columns | 9 |
| _______________________ | |
| Column type frequency: | |
| character | 4 |
| numeric | 5 |
| ________________________ | |
| Group variables | None |
Variable type: character
| skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
|---|---|---|---|---|---|---|---|
| bmd | 0 | 1.00 | 1 | 5 | 0 | 121 | 0 |
| ictp | 0 | 1.00 | 1 | 5 | 0 | 136 | 0 |
| NA. | 132 | 0.05 | 2 | 4 | 0 | 7 | 0 |
| NA..1 | 132 | 0.05 | 4 | 48 | 0 | 6 | 0 |
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|
| id | 0 | 1 | 70.00 | 40.27 | 1.00 | 35.50 | 70.00 | 104.50 | 139.00 | ▇▇▇▇▇ |
| fx | 0 | 1 | 0.27 | 0.45 | 0.00 | 0.00 | 0.00 | 1.00 | 1.00 | ▇▁▁▁▃ |
| age | 0 | 1 | 71.05 | 5.27 | 59.00 | 67.00 | 70.00 | 74.00 | 89.00 | ▂▇▃▂▁ |
| bmi | 0 | 1 | 26.48 | 3.43 | 19.37 | 24.32 | 25.82 | 28.53 | 38.08 | ▂▇▅▁▁ |
| pinp | 0 | 1 | 40.68 | 15.12 | 16.13 | 29.65 | 37.53 | 46.50 | 104.58 | ▆▇▂▁▁ |
## id fx age bmi bmd ictp pinp NA.
## 1 1 1 79 24.7252 0.818 9.17 37.383 <NA>
## 2 2 1 89 25.9909 0.871 7.561 24.685 <NA>
## 3 3 1 70 25.3934 1.358 5.347 40.620 id
## 4 4 1 88 23.2254 0.714 7.354 56.782 fx
## 5 5 1 85 24.6097 0.748 6.76 58.358 age
## 6 6 0 68 25.0762 0.935 4.939 67.123 bmi
## 7 7 0 70 19.8839 1.04 4.321 26.399 bmd
## 8 8 0 69 25.0593 1.002 4.212 47.515 ictp
## 9 9 0 74 25.6544 0.987 5.605 26.132 pinp
## 10 10 0 79 19.9594 0.863 5.204 60.267 <NA>
## NA..1
## 1 <NA>
## 2 <NA>
## 3 Mã số bệnh nhân
## 4 Có/không có gãy xương
## 5 Tuổi
## 6 Body mass index (tính bằng trọng lượng/chiều cao
## 7 Bond mineral (Mật độ chất khoáng trong xương)
## 8 Chỉ số sinh hoá đo lường hoạt tính xương
## 9 Chỉ số sinh hoá đo lường hoạt tính xương
## 10 <NA>
## id fx age bmi bmd ictp pinp NA. NA..1
## 130 130 0 69 25.6173 0.944 6.512 49.557 <NA> <NA>
## 131 131 0 67 30.3871 1.245 3.603 46.769 <NA> <NA>
## 132 132 0 67 33.6901 1.142 3.666 38.839 <NA> <NA>
## 133 133 0 68 28.4005 0.86 2.89 32.140 <NA> <NA>
## 134 134 1 59 25.4017 1.172 . 104.579 <NA> <NA>
## 135 135 0 66 22.5710 0.956 3.354 36.253 <NA> <NA>
## 136 136 1 71 24.4473 0.918 4.633 53.881 <NA> <NA>
## 137 137 0 64 38.0762 1.086 5.043 32.835 <NA> <NA>
## 138 138 1 80 23.3887 0.875 4.086 23.837 <NA> <NA>
## 139 139 0 67 25.9455 0.983 4.328 71.334 <NA> <NA>
## 'data.frame': 139 obs. of 9 variables:
## $ id : num 1 2 3 4 5 6 7 8 9 10 ...
## $ fx : num 1 1 1 1 1 0 0 0 0 0 ...
## $ age : num 79 89 70 88 85 68 70 69 74 79 ...
## $ bmi : num 24.7 26 25.4 23.2 24.6 ...
## $ bmd : chr "0.818" "0.871" "1.358" "0.714" ...
## $ ictp : chr "9.17" "7.561" "5.347" "7.354" ...
## $ pinp : num 37.4 24.7 40.6 56.8 58.4 ...
## $ NA. : chr NA NA "id" "fx" ...
## $ NA..1: chr NA NA "Mã số bệnh nhân" "Có/không có gãy xương" ...
## id fx age bmi bmd ictp pinp NA. NA..1
## [1,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [2,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [3,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [4,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [5,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [6,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [7,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [8,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [9,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [10,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [11,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [12,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [13,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [14,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [15,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [16,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [17,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [18,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [19,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [20,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [21,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [22,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [23,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [24,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [25,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [26,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [27,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [28,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [29,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [30,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [31,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [32,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [33,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [34,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [35,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [36,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [37,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [38,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [39,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [40,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [41,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [42,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [43,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [44,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [45,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [46,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [47,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [48,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [49,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [50,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [51,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [52,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [53,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [54,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [55,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [56,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [57,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [58,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [59,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [60,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [61,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [62,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [63,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [64,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [65,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [66,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [67,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [68,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [69,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [70,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [71,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [72,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [73,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [74,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [75,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [76,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [77,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [78,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [79,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [80,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [81,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [82,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [83,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [84,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [85,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [86,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [87,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [88,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [89,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [90,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [91,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [92,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [93,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [94,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [95,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [96,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [97,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [98,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [99,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [100,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [101,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [102,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [103,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [104,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [105,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [106,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [107,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [108,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [109,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [110,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [111,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [112,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [113,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [114,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [115,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [116,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [117,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [118,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [119,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [120,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [121,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [122,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [123,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [124,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [125,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [126,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [127,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [128,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [129,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [130,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [131,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [132,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [133,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [134,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [135,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [136,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [137,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [138,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [139,] FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE
## [1] 264
## [1] 974 975 983 984 985 986 987 988 989 990 991 992 993 994 995
## [16] 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010
## [31] 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025
## [46] 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040
## [61] 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055
## [76] 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070
## [91] 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085
## [106] 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100
## [121] 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1122
## [136] 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137
## [151] 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152
## [166] 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167
## [181] 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182
## [196] 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197
## [211] 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212
## [226] 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227
## [241] 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242
## [256] 1243 1244 1245 1246 1247 1248 1249 1250 1251
#Đặt lại têN cho các cột của dữ liệu
names(ltn) <- c('i','f','a','b','d','c','p','m','n')
names(ltn)## [1] "i" "f" "a" "b" "d" "c" "p" "m" "n"
## num 1
## chr [1:7] "0.818" "0.871" "1.358" "0.714" "0.748" "0.935" "1.04"
## num [1:139] 79 89 70 88 85 68 70 69 74 79 ...
## num [1:139] 79 89 70 88 85 68 70 69 74 79 ...
## 'data.frame': 1 obs. of 9 variables:
## $ i: num 6
## $ f: num 0
## $ a: num 68
## $ b: num 25.1
## $ d: chr "0.935"
## $ c: chr "4.939"
## $ p: num 67.1
## $ m: chr "bmi"
## $ n: chr "Body mass index (tính bằng trọng lượng/chiều cao"
#Gán ltn1 là giá trị của cột id và cột bmi và tất cả các hàng của ltn
ltn1 <- ltn[ ,c(1,4)]
str(ltn1)## 'data.frame': 139 obs. of 2 variables:
## $ i: num 1 2 3 4 5 6 7 8 9 10 ...
## $ b: num 24.7 26 25.4 23.2 24.6 ...
## 'data.frame': 8 obs. of 9 variables:
## $ i: num 2 3 4 5 6 7 8 9
## $ f: num 1 1 1 1 0 0 0 0
## $ a: num 89 70 88 85 68 70 69 74
## $ b: num 26 25.4 23.2 24.6 25.1 ...
## $ d: chr "0.871" "1.358" "0.714" "0.748" ...
## $ c: chr "7.561" "5.347" "7.354" "6.76" ...
## $ p: num 24.7 40.6 56.8 58.4 67.1 ...
## $ m: chr NA "id" "fx" "age" ...
## $ n: chr NA "Mã số bệnh nhân" "Có/không có gãy xương" "Tuổi" ...
#Gán ltn3 là giá trị của các hàng 3,5,7,21 và tất cả các cột của ltn
ltn3 <- ltn[c(3,5,7,21), ]
str(ltn3)## 'data.frame': 4 obs. of 9 variables:
## $ i: num 3 5 7 21
## $ f: num 1 1 0 1
## $ a: num 70 85 70 74
## $ b: num 25.4 24.6 19.9 23.1
## $ d: chr "1.358" "0.748" "1.04" "0.597"
## $ c: chr "5.347" "6.76" "4.321" "4.835"
## $ p: num 40.6 58.4 26.4 35.1
## $ m: chr "id" "age" "bmd" NA
## $ n: chr "Mã số bệnh nhân" "Tuổi" "Bond mineral (Mật độ chất khoáng trong xương)" NA
#Gán ltn4 là gí trị của các hàng 2,3,6,18 và các cột 2,3 của ltn
ltn4 <- ltn[c(2,3,6,18),c(2,3)]
str(ltn4)## 'data.frame': 4 obs. of 2 variables:
## $ f: num 1 1 0 0
## $ a: num 89 70 68 69
#Gán ltn5 là giá trị các hàng age có dữ liệu >= 60 và tất cả các cột của ltn
ltn5 <- ltn[ltn$a >= 60, ]
str(ltn5)## 'data.frame': 138 obs. of 9 variables:
## $ i: num 1 2 3 4 5 6 7 8 9 10 ...
## $ f: num 1 1 1 1 1 0 0 0 0 0 ...
## $ a: num 79 89 70 88 85 68 70 69 74 79 ...
## $ b: num 24.7 26 25.4 23.2 24.6 ...
## $ d: chr "0.818" "0.871" "1.358" "0.714" ...
## $ c: chr "9.17" "7.561" "5.347" "7.354" ...
## $ p: num 37.4 24.7 40.6 56.8 58.4 ...
## $ m: chr NA NA "id" "fx" ...
## $ n: chr NA NA "Mã số bệnh nhân" "Có/không có gãy xương" ...
#Gán ltn6 là giá trị của các hàng age >= 50 và <= 70 và tất cả các cột của ltn
ltn6 <- ltn[ltn$a >= 50 & ltn$a <= 70, ]
str(ltn6)## 'data.frame': 75 obs. of 9 variables:
## $ i: num 3 6 7 8 13 14 16 18 24 25 ...
## $ f: num 1 0 0 0 1 0 0 0 0 1 ...
## $ a: num 70 68 70 69 62 69 67 69 70 69 ...
## $ b: num 25.4 25.1 19.9 25.1 20.3 ...
## $ d: chr "1.358" "0.935" "1.04" "1.002" ...
## $ c: chr "5.347" "4.939" "4.321" "4.212" ...
## $ p: num 40.6 67.1 26.4 47.5 51.1 ...
## $ m: chr "id" "bmi" "bmd" "ictp" ...
## $ n: chr "Mã số bệnh nhân" "Body mass index (tính bằng trọng lượng/chiều cao" "Bond mineral (Mật độ chất khoáng trong xương)" "Chỉ số sinh hoá đo lường hoạt tính xương" ...
#Gán ltn7 là giá trị của hàng age là 79 hoặc 80 và tất cả các cột của ltn
ltn7 <- ltn[ltn$a == 79 | ltn$a == 80, ]
str(ltn7)## 'data.frame': 10 obs. of 9 variables:
## $ i: num 1 10 27 28 31 32 43 45 124 138
## $ f: num 1 0 1 1 1 0 0 1 0 1
## $ a: num 79 79 80 79 80 79 80 79 80 80
## $ b: num 24.7 20 24.7 26.9 28.4 ...
## $ d: chr "0.818" "0.863" "0.859" "0.867" ...
## $ c: chr "9.17" "5.204" "5.706" "3.563" ...
## $ p: num 37.4 60.3 37.5 43.9 33.4 ...
## $ m: chr NA NA NA NA ...
## $ n: chr NA NA NA NA ...
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
#Gán ltn8 để trích dữ liệu age >= 50 và id <= 100
ltn8 <- filter(ltn, ltn$a>= 50 & ltn$i<= 100)
str(ltn8)## 'data.frame': 100 obs. of 9 variables:
## $ i: num 1 2 3 4 5 6 7 8 9 10 ...
## $ f: num 1 1 1 1 1 0 0 0 0 0 ...
## $ a: num 79 89 70 88 85 68 70 69 74 79 ...
## $ b: num 24.7 26 25.4 23.2 24.6 ...
## $ d: chr "0.818" "0.871" "1.358" "0.714" ...
## $ c: chr "9.17" "7.561" "5.347" "7.354" ...
## $ p: num 37.4 24.7 40.6 56.8 58.4 ...
## $ m: chr NA NA "id" "fx" ...
## $ n: chr NA NA "Mã số bệnh nhân" "Có/không có gãy xương" ...
## 'data.frame': 139 obs. of 3 variables:
## $ i: num 1 2 3 4 5 6 7 8 9 10 ...
## $ f: num 1 1 1 1 1 0 0 0 0 0 ...
## $ a: num 79 89 70 88 85 68 70 69 74 79 ...
#Gán ltn10 để trích dữ liệu id>60, age>40 và chỉ lấy 5 cột id, fx, age, bmi, bmd
ltn10 <- filter(ltn, i>60 & a>40) %>% select(i,f,a,b,d)
str(ltn10)## 'data.frame': 79 obs. of 5 variables:
## $ i: num 61 62 63 64 65 66 67 68 69 70 ...
## $ f: num 0 0 0 0 1 0 0 0 0 1 ...
## $ a: num 74 71 65 77 67 66 70 70 69 65 ...
## $ b: num 28.4 29.1 24 23 33.4 ...
## $ d: chr "1.045" "1.066" "0.841" "1.015" ...
Bộ dữ liệu điều tra các yếu tố ảnh hưởng đến mức lương của Nhà khoa học dữ liệu. Để đạt được điều này, một tập dữ liệu chứa nhiều biến có liên quan đã được sử dụng gồm 11 biến trong đó có 8 biến định tính và 3 biến định lượng
Bộ dữ liệu gồm các biến sau:
1. Job_title: Vai trò này đã được thực hiện trong năm
2. Experience_level: Mức độ kinh nghiệm trong công việc trong năm
· EN > Sơ cấp/ Sơ cấp
· MI > Trung cấp/ Trung cấp
· SE > Cao cấp/ Chuyên gia
· EX > Cấp điều hành/ Giám đốc
3. Employment_type: Loại công việc cho vai trò này
· PT > Bán thời gian
· FT > Toàn thời gian
· CT > Hợp đồng
· FL > Làm nghề tự do
4. Work_models : Tổng khối lượng công việc được thực hiện từ xa
5. Work_year: Năm lương được trả
6. Employee_residence: Quốc gia cư trú chính của nhân viên trong năm làm việc là mã quốc gia
7. Salary: Tổng số tiền lương gộp được trả
8. Salary_curency: Đơn vị tiền tệ của tiền lương được trả dưới dạng mã tiền tệ
9. Salaryinusd: Lương tính bằng USD
10. Company_location: Quốc gia của văn phòng chính phủ hoặc chi nhánh hợp đồng của người sử dụng lao động
11. Company_size: Quy mô công ty
#KIỂM TRA 'dss' CÓ PHẢI DATA FRAME HAY KHÔNG. NẾU ĐÚNG THÌ TRẢ KẾT QUẢ LÀ TRUE VÀ NGƯỢC LẠI
is.data.frame(dss) ## [1] TRUE
## [1] 11
## [1] "job_title" "experience_level" "employment_type"
## [4] "work_models" "work_year" "employee_residence"
## [7] "salary" "salary_currency" "salary_in_usd"
## [10] "company_location" "company_size"
## [1] 11087 11
| Name | dss |
| Number of rows | 11087 |
| Number of columns | 11 |
| _______________________ | |
| Column type frequency: | |
| character | 8 |
| numeric | 3 |
| ________________________ | |
| Group variables | None |
Variable type: character
| skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
|---|---|---|---|---|---|---|---|
| job_title | 0 | 1 | 9 | 40 | 0 | 132 | 0 |
| experience_level | 0 | 1 | 9 | 15 | 0 | 4 | 0 |
| employment_type | 0 | 1 | 8 | 9 | 0 | 4 | 0 |
| work_models | 0 | 1 | 6 | 7 | 0 | 3 | 0 |
| employee_residence | 0 | 1 | 4 | 24 | 0 | 87 | 0 |
| salary_currency | 0 | 1 | 3 | 3 | 0 | 22 | 0 |
| company_location | 0 | 1 | 4 | 24 | 0 | 75 | 0 |
| company_size | 0 | 1 | 5 | 6 | 0 | 3 | 0 |
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|
| work_year | 0 | 1 | 2022.85 | 0.57 | 2020 | 2023 | 2023 | 2023 | 2024 | ▁▁▂▇▁ |
| salary | 0 | 1 | 169572.30 | 408031.15 | 14000 | 105000 | 142200 | 188050 | 30400000 | ▇▁▁▁▁ |
| salary_in_usd | 0 | 1 | 149614.98 | 66704.33 | 15000 | 104000 | 142000 | 185900 | 750000 | ▇▅▁▁▁ |
## job_title experience_level employment_type work_models work_year
## 1 Data Engineer Mid-level Full-time Remote 2024
## 2 Data Engineer Mid-level Full-time Remote 2024
## 3 Data Scientist Senior-level Full-time Remote 2024
## 4 Data Scientist Senior-level Full-time Remote 2024
## 5 BI Developer Mid-level Full-time On-site 2024
## 6 BI Developer Mid-level Full-time On-site 2024
## 7 Research Analyst Entry-level Full-time On-site 2024
## 8 Research Analyst Entry-level Full-time On-site 2024
## 9 Data Engineer Executive-level Full-time Remote 2024
## 10 Data Engineer Executive-level Full-time Remote 2024
## employee_residence salary salary_currency salary_in_usd company_location
## 1 United States 148100 USD 148100 United States
## 2 United States 98700 USD 98700 United States
## 3 United States 140032 USD 140032 United States
## 4 United States 100022 USD 100022 United States
## 5 United States 120000 USD 120000 United States
## 6 United States 62100 USD 62100 United States
## 7 United States 250000 USD 250000 United States
## 8 United States 150000 USD 150000 United States
## 9 United States 219650 USD 219650 United States
## 10 United States 136000 USD 136000 United States
## company_size
## 1 Medium
## 2 Medium
## 3 Medium
## 4 Medium
## 5 Medium
## 6 Medium
## 7 Medium
## 8 Medium
## 9 Medium
## 10 Medium
## job_title experience_level employment_type work_models
## 11078 Data Engineer Mid-level Full-time Remote
## 11079 ML Engineer Entry-level Part-time Remote
## 11080 Data Scientist Mid-level Full-time On-site
## 11081 Data Scientist Entry-level Full-time Hybrid
## 11082 Principal Data Scientist Senior-level Full-time Remote
## 11083 Staff Data Analyst Entry-level Contract Hybrid
## 11084 Staff Data Analyst Executive-level Full-time On-site
## 11085 Machine Learning Manager Senior-level Full-time Hybrid
## 11086 Data Engineer Mid-level Full-time Hybrid
## 11087 Data Scientist Senior-level Full-time On-site
## work_year employee_residence salary salary_currency salary_in_usd
## 11078 2020 Germany 51999 EUR 59303
## 11079 2020 Germany 14000 EUR 15966
## 11080 2020 Germany 70000 EUR 79833
## 11081 2020 Germany 55000 EUR 62726
## 11082 2020 Germany 130000 EUR 148261
## 11083 2020 Canada 60000 CAD 44753
## 11084 2020 Nigeria 15000 USD 15000
## 11085 2020 Canada 157000 CAD 117104
## 11086 2020 Austria 65000 EUR 74130
## 11087 2020 Austria 80000 EUR 91237
## company_location company_size
## 11078 Germany Small
## 11079 Germany Small
## 11080 Germany Large
## 11081 Germany Small
## 11082 Germany Medium
## 11083 Canada Large
## 11084 Canada Medium
## 11085 Canada Large
## 11086 Austria Large
## 11087 Austria Small
{r} #Xem cấu trúc của bộ dữ liệu str(ltn)}
#Đặt lại têN cho các cột của dữ liệu
names(dss) <- c('j','el','et','wm','wy','er','s','sc','su','c','cs')
names(dss)## [1] "j" "el" "et" "wm" "wy" "er" "s" "sc" "su" "c" "cs"
## chr "Mid-level"
## chr [1:7] "Remote" "Remote" "Remote" "Remote" "On-site" "On-site" ...
## num [1:11087] 148100 98700 140032 100022 120000 ...
## num [1:11087] 148100 98700 140032 100022 120000 ...
## 'data.frame': 1 obs. of 11 variables:
## $ j : chr "BI Developer"
## $ el: chr "Mid-level"
## $ et: chr "Full-time"
## $ wm: chr "On-site"
## $ wy: num 2024
## $ er: chr "United States"
## $ s : num 62100
## $ sc: chr "USD"
## $ su: num 62100
## $ c : chr "United States"
## $ cs: chr "Medium"
#Gán dss1 là giá trị của cột salary và cột salary_usd và tất cả các hàng của dss
dss1 <- dss[ ,c(7,9)]
str(dss1)## 'data.frame': 11087 obs. of 2 variables:
## $ s : num 148100 98700 140032 100022 120000 ...
## $ su: num 148100 98700 140032 100022 120000 ...
## 'data.frame': 8 obs. of 11 variables:
## $ j : chr "Data Engineer" "Data Scientist" "Data Scientist" "BI Developer" ...
## $ el: chr "Mid-level" "Senior-level" "Senior-level" "Mid-level" ...
## $ et: chr "Full-time" "Full-time" "Full-time" "Full-time" ...
## $ wm: chr "Remote" "Remote" "Remote" "On-site" ...
## $ wy: num 2024 2024 2024 2024 2024 ...
## $ er: chr "United States" "United States" "United States" "United States" ...
## $ s : num 98700 140032 100022 120000 62100 ...
## $ sc: chr "USD" "USD" "USD" "USD" ...
## $ su: num 98700 140032 100022 120000 62100 ...
## $ c : chr "United States" "United States" "United States" "United States" ...
## $ cs: chr "Medium" "Medium" "Medium" "Medium" ...
#Gán dss3 là giá trị của các hàng 3,5,7,21 và tất cả các cột của dss
dss3 <- dss[c(3,5,7,21), ]
str(dss3)## 'data.frame': 4 obs. of 11 variables:
## $ j : chr "Data Scientist" "BI Developer" "Research Analyst" "Data Engineer"
## $ el: chr "Senior-level" "Mid-level" "Entry-level" "Senior-level"
## $ et: chr "Full-time" "Full-time" "Full-time" "Full-time"
## $ wm: chr "Remote" "On-site" "On-site" "On-site"
## $ wy: num 2024 2024 2024 2024
## $ er: chr "United States" "United States" "United States" "United States"
## $ s : num 140032 120000 250000 204662
## $ sc: chr "USD" "USD" "USD" "USD"
## $ su: num 140032 120000 250000 204662
## $ c : chr "United States" "United States" "United States" "United States"
## $ cs: chr "Medium" "Medium" "Medium" "Medium"
#Gán dss4 là gí trị của các hàng 2,3,6,18 và các cột 2,3 của dss
dss4 <- dss[c(2,3,6,18),c(2,3)]
str(dss4)## 'data.frame': 4 obs. of 2 variables:
## $ el: chr "Mid-level" "Senior-level" "Mid-level" "Mid-level"
## $ et: chr "Full-time" "Full-time" "Full-time" "Full-time"
#Gán dss5 là giá trị các hàng salary có dữ liệu >= 100000 và tất cả các cột của dss
dss5 <- dss[dss$s >= 100000, ]
str(dss5)## 'data.frame': 8681 obs. of 11 variables:
## $ j : chr "Data Engineer" "Data Scientist" "Data Scientist" "BI Developer" ...
## $ el: chr "Mid-level" "Senior-level" "Senior-level" "Mid-level" ...
## $ et: chr "Full-time" "Full-time" "Full-time" "Full-time" ...
## $ wm: chr "Remote" "Remote" "Remote" "On-site" ...
## $ wy: num 2024 2024 2024 2024 2024 ...
## $ er: chr "United States" "United States" "United States" "United States" ...
## $ s : num 148100 140032 100022 120000 250000 ...
## $ sc: chr "USD" "USD" "USD" "USD" ...
## $ su: num 148100 140032 100022 120000 250000 ...
## $ c : chr "United States" "United States" "United States" "United States" ...
## $ cs: chr "Medium" "Medium" "Medium" "Medium" ...
#Gán dss6 là giá trị của các hàng salary >= 10000 và <= 100000 và tất cả các cột của dss
dss6 <- dss[dss$s >= 10000 & dss$s <= 100000, ]
str(dss6)## 'data.frame': 2640 obs. of 11 variables:
## $ j : chr "Data Engineer" "BI Developer" "Business Intelligence Developer" "Business Intelligence Developer" ...
## $ el: chr "Mid-level" "Mid-level" "Mid-level" "Mid-level" ...
## $ et: chr "Full-time" "Full-time" "Full-time" "Full-time" ...
## $ wm: chr "Remote" "On-site" "On-site" "On-site" ...
## $ wy: num 2024 2024 2024 2024 2024 ...
## $ er: chr "United States" "United States" "United States" "United States" ...
## $ s : num 98700 62100 87800 76300 98700 93000 85000 75000 70000 85000 ...
## $ sc: chr "USD" "USD" "USD" "USD" ...
## $ su: num 98700 62100 87800 76300 98700 93000 85000 75000 70000 85000 ...
## $ c : chr "United States" "United States" "United States" "United States" ...
## $ cs: chr "Medium" "Medium" "Medium" "Medium" ...
#Gán dss7 là giá trị của hàng salary là 79 hoặc 80 và tất cả các cột của dss
dss7 <- dss[dss$s == 79 | dss$s == 80, ]
str(dss7)## 'data.frame': 0 obs. of 11 variables:
## $ j : chr
## $ el: chr
## $ et: chr
## $ wm: chr
## $ wy: num
## $ er: chr
## $ s : num
## $ sc: chr
## $ su: num
## $ c : chr
## $ cs: chr
#Gán dss8 để trích dữ liệu salary >= 50000 và salary_in_usd <= 100000
dss8 <- filter(dss, dss$s>= 50000 & dss$su<= 100000)
str(dss8)## 'data.frame': 2252 obs. of 11 variables:
## $ j : chr "Data Engineer" "BI Developer" "Business Intelligence Developer" "Business Intelligence Developer" ...
## $ el: chr "Mid-level" "Mid-level" "Mid-level" "Mid-level" ...
## $ et: chr "Full-time" "Full-time" "Full-time" "Full-time" ...
## $ wm: chr "Remote" "On-site" "On-site" "On-site" ...
## $ wy: num 2024 2024 2024 2024 2024 ...
## $ er: chr "United States" "United States" "United States" "United States" ...
## $ s : num 98700 62100 87800 76300 98700 93000 85000 75000 70000 85000 ...
## $ sc: chr "USD" "USD" "USD" "USD" ...
## $ su: num 98700 62100 87800 76300 98700 93000 85000 75000 70000 85000 ...
## $ c : chr "United States" "United States" "United States" "United States" ...
## $ cs: chr "Medium" "Medium" "Medium" "Medium" ...
## 'data.frame': 11087 obs. of 3 variables:
## $ s : num 148100 98700 140032 100022 120000 ...
## $ sc: chr "USD" "USD" "USD" "USD" ...
## $ su: num 148100 98700 140032 100022 120000 ...
#Gán dss10 để trích dữ liệu salary>60000, salary_in_usd >40000 và chỉ lấy 5 cột job_title, experience_level, employment_type, work_models, work_year
dss10 <- filter(dss, s>60 & su>40) %>% select(j,el,et,wm,wy)
str(dss10)## 'data.frame': 11087 obs. of 5 variables:
## $ j : chr "Data Engineer" "Data Engineer" "Data Scientist" "Data Scientist" ...
## $ el: chr "Mid-level" "Mid-level" "Senior-level" "Senior-level" ...
## $ et: chr "Full-time" "Full-time" "Full-time" "Full-time" ...
## $ wm: chr "Remote" "Remote" "Remote" "Remote" ...
## $ wy: num 2024 2024 2024 2024 2024 ...