10:24:11, 27 - 01 - 2024
Bộ dữ liệu “population-and-demography.csv” là một nguồn thông tin quan trọng về dân số của các quốc gia và khu vực trên thế giới. Các biến quan trọng bao gồm tên quốc gia, năm quan sát, và các thông số dân số chi tiết theo độ tuổi khác nhau từ năm 1950 đến năm 2021.
Trước tiên để đọc về bộ dữ liệu từ một tệp CSV vào trong R, ta có thể thực hiện bằng các câu lệnh sau:
#Sử dụng lệnh read.csv đọc dữ liệu từ file csv vào R và gán vào "danso"
danso <- read.csv(file = "C:/Users/HP/Downloads/population-and-demography.csv")
Để đọc mô tả chi tiết về cấu trúc của bộ dữ liệu ta sử dụng câu lệnh str
#Sử dụng lệnh str để xem cấu trúc của bộ dữ liệu "danso"
str(danso)
## 'data.frame': 18288 obs. of 24 variables:
## $ Country : chr "Afghanistan" "Afghanistan" "Afghanistan" "Afghanistan" ...
## $ Year : int 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 ...
## $ Population : num 7480464 7571542 7667534 7764549 7864289 ...
## $ Population.of.children.under.the.age.of.1 : num 301735 299368 305393 311574 317584 ...
## $ Population.of.children.under.the.age.of.5 : int 1248282 1246857 1248220 1254725 1267817 1291129 1322342 1354752 1387274 1421808 ...
## $ Population.of.children.under.the.age.of.15: int 3068855 3105444 3145070 3186382 3231060 3281470 3337026 3396048 3455343 3518528 ...
## $ Population.under.the.age.of.25 : num 4494349 4552138 4613604 4676232 4741371 ...
## $ Population.aged.15.to.64.years : num 4198587 4250002 4303436 4356242 4408474 ...
## $ Population.older.than.15.years : num 4411609 4466098 4522464 4578167 4633229 ...
## $ Population.older.than.18.years : num 3946595 3993640 4041439 4088379 4136116 ...
## $ Population.at.age.1 : num 258652 254304 252906 258717 264765 ...
## $ Population.aged.1.to.4.years : num 946547 947489 942827 943151 950233 ...
## $ Population.aged.5.to.9.years : int 966210 991791 1017993 1039950 1055592 1062420 1063212 1065357 1071666 1084972 ...
## $ Population.aged.10.to.14.years : int 854363 866796 878857 891707 907651 927921 951472 975939 996403 1011748 ...
## $ Population.aged.15.to.19.years : int 757113 768616 781411 794308 806216 817550 828600 839588 851433 867048 ...
## $ Population.aged.20.to.29.years : int 1241348 1260904 1280288 1298803 1316768 1334989 1353958 1374043 1393789 1414034 ...
## $ Population.aged.30.to.39.years : int 909953 922765 935638 948321 961484 975801 991166 1007440 1023595 1040441 ...
## $ Population.aged.40.to.49.years : int 661807 667015 672491 678064 684153 691279 699431 708537 717938 728233 ...
## $ Population.aged.50.to.59.years : int 467170 468881 470898 472969 475117 477664 480665 484018 487393 491447 ...
## $ Population.aged.60.to.69.years : int 271905 273286 274852 276577 278210 279789 281376 282918 284592 286551 ...
## $ Population.aged.70.to.79.years : int 92691 94358 96026 97705 99298 100839 102385 103932 105508 107136 ...
## $ Population.aged.80.to.89.years : int 9499 10155 10721 11254 11793 12342 12890 13428 13959 14495 ...
## $ Population.aged.90.to.99.years : int 123 118 139 166 190 210 233 255 277 307 ...
## $ Population.older.than.100.years : num 0 0 0 0 0 0 0 0 0 0 ...
Giải thích kết quả mà câu lệnh trả về
Kiểm tra có tất cả bao nhiêu quốc gia trong bộ dữ liệu trên bằng câu lệnh sau:
#Lập bảng tần số mà tên các quốc gia được lặp lại và gán vào soQG
soQG <- table(danso$Country)
#Xem số lượng quốc gia được quan sát
dim(soQG)
## [1] 254
Kết quả trả về cho ta thấy có 254 quốc gia trong bộ dữ liệu.
Kiểm tra giá trị bị thiếu trong bộ dữ liệu trên bằng câu lệnh sau:
#Kiểm tra xem có bao nhiêu giá trị bị thiếu
sum(is.na(danso))
## [1] 0
Kết quả trả về cho ta thấy không có giá trị bị thiếu.
Bộ dữ liệu population-and-demography.csv chứa một lượng thông tin đồ sộ, tuy nhiên chúng ta không thể dùng hết được dữ liệu thu về. Trong quá trình phân tích, chúng ta sẽ tiến hành các bước thực hiện sau đây.
Ta sẽ chọn ra những biến là dân số có độ tuổi trong độ tuổi lao động là từ 1 tuổi đến 29 tuổi trên bộ dữ liệu “danso”. Ta tiến hành gọi packsge tidyverse dùng để sử dụng toán tử pipe %>%.
# Gọi ra gói tidyverse
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.4.4 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.0
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
# Chọn ra các biến cần thiết để xử lý
danso2 <- danso %>% select(Country, Year, Population, Population.aged.1.to.4.years, Population.aged.5.to.9.years, Population.aged.10.to.14.years, Population.aged.15.to.19.years, Population.aged.20.to.29.years)
names(danso2)
## [1] "Country" "Year"
## [3] "Population" "Population.aged.1.to.4.years"
## [5] "Population.aged.5.to.9.years" "Population.aged.10.to.14.years"
## [7] "Population.aged.15.to.19.years" "Population.aged.20.to.29.years"
Với câu lệnh trên ta hoàn tất để chọn ra biến là:
Ta tiến hành đổi tên biến để dễ dàng thao tác hơn
# Lệnh đổi tên biến
danso2 <- danso2 %>% rename('QG' = Country, 'Y' = Year , 'POP' = Population, 'POP1to4' = Population.aged.1.to.4.years, 'POP5to9' = Population.aged.5.to.9.years, 'POP10to14' = Population.aged.10.to.14.years, 'POP15to19' = Population.aged.15.to.19.years, 'POP20to29' = Population.aged.20.to.29.years)
names(danso2)
## [1] "QG" "Y" "POP" "POP1to4" "POP5to9" "POP10to14"
## [7] "POP15to19" "POP20to29"
Với câu lệnh và kết quả trên thì tên biến đã được đổi tương ứng với thứ tự biến trong data danso2. ### 2.3 LỌC RA 5 QUỐC GIA TRÊN BỘ DATA DANSO2
Sau đây ta sẽ lọc ra 5 quốc gia trên bộ Data “danso2”. 5 quốc gia được chọn bao gồm: Việt Nam(Vietnam), Trung Quốc(China), Ấn Độ(India), Indonesia(Indonesia), Nga(Russia)
Ta tiến hành lọc bộ dữ liệu
danso3 <- danso2 %>% filter(QG == "Vietnam"| QG == "China"| QG == "India"| QG == "Indonesia"| QG == "Russia")
names(danso3)
## [1] "QG" "Y" "POP" "POP1to4" "POP5to9" "POP10to14"
## [7] "POP15to19" "POP20to29"
Với câu lệnh trên ta hoàn tất để lọc các dữ liệu từ các quốc gia Việt Nam, Trung Quốc, Ấn Độ, Indonesia, Nga.
Để dễ dàng hơn trong việc phân tích, chúng ta sử dụng các lệnh về mã hóa dữ liệu. Các lệnh mã hóa dữ liệu như case_when, cut(), case_match và ifelse() sẽ giúp chúng ta chuyển đổi từ dữ liệu dạng này sang một dạng mới.
danso2$CoCauDanSo <- ifelse(danso2$POP10to14 > 0.1 * danso2$POP, 'Dân số trẻ', 'Dân số già')
danso2$SLDanso <- ifelse(danso2$POP > 50000000, 'Dong dan', 'thua thot')
danso2$SLDanso1 <- case_when(danso2$POP < 50000000 ~ 'thấp', danso2$POP >= 50000000 & danso2$POP < 100000000 ~ 'trung bình ', danso2$POP > 100000000 ~ 'cao' ) #3
danso2$SLDanso2 <- cut(danso2$POP, breaks = c(0, 50000000,100000000, 10000000000), labels= c('kv1', 'kv2', 'kv3')) #4
Kết quả cho biết:
CoCauDanSo: Tạo cột mới có tên là CoCauDanSo
bằng cách sử dụng lệnh ifelse
. Gán giá trị là dân số trẻ
nếu giá trị của biến POP10to14 lớn hơn 0.1 lần giá trị của biến POP,
ngược lại sẽ là dân số già.
SLDanso: Tạo cột mới có tên là SLDanso sử dụng
lệnh ifelse
. Gán giá trị là đông đúc nếu tổng dân số lớn
hơn 5.0000.000, ngược lại sẽ là thưa thớt.
SLDanso1: Tạo cột mới có tên là SLDanso1 sử dụng
hàm case_when
để mã hóa dữ liệu thành ba nhóm: thấp nếu giá
trị của biến POP nhỏ hơn 50.000.000, trung bình nếu giá trị của biến POP
từ 50.000.000 đến 100.000.000, và cao nếu giá trị của biến POP lớn hơn
100.000.000.
SLDanso2: Tạo cột mới có tên là SLDanso2 sử dụng
hàm cut
để chia dữ liệu thành ba khoảng giá trị: kv1 cho
giá trị từ 0 đến 50.000.000, kv2 cho giá trị từ 50.000.000 đến
100.000.000, và kv3 cho giá trị từ 100.000.000 đến
1.000.000.000.
Đối với câu lệnh table(), chúng ta có khả năng xem xét tần suất xuất hiện của một biến trong tập dữ liệu. Điều này mang lại lợi ích lớn trong việc tổng hợp một lượng lớn dữ liệu thành một bảng ngắn gọn, giúp quá trình phân tích trở nên thuận tiện và dễ dàng
danso4 <- cut(danso2$POP,3)
table(danso4)
Kết quả trên cho ta biết:
Sử dụng hàm cut() để chia dữ liệu trong biến tổng dân số POP thuộc data danso2 thành 3 nhóm * (-7.91e+06,2.64e+09] xuất hiện với 18024 quan sát. * (2.64e+09,5.27e+09] xuất hiện với 209 quan sát. * (5.27e+09,7.92e+09] xuất hiện với 55 quan sát.
Với câu lệnh group_by cho phép lập bảng với nhiều biến cùng lúc.
danso5 <- danso2 %>% group_by(Y, QG, SLDanso2) %>% summarise(n= n(), .groups = 'drop')
danso5
## # A tibble: 18,288 × 4
## Y QG SLDanso2 n
## <int> <chr> <fct> <int>
## 1 1950 Afghanistan kv1 1
## 2 1950 Africa (UN) kv3 1
## 3 1950 Albania kv1 1
## 4 1950 Algeria kv1 1
## 5 1950 American Samoa kv1 1
## 6 1950 Andorra kv1 1
## 7 1950 Angola kv1 1
## 8 1950 Anguilla kv1 1
## 9 1950 Antigua and Barbuda kv1 1
## 10 1950 Argentina kv1 1
## # ℹ 18,278 more rows
Kết quả trên cho thấy:
*Bảng tấn số với lệnh trên cho ra tần suất dữ liệu của các biến ‘QG’, ‘Y’, ‘SLDSo2’. Câu lệnh summarise(n= n() cho ra số n tần suất của dữ liệu và groups = ‘drop’ giúp chia nhóm dữ liệu.
Để đạt được tính toán chính xác và chi tiết về các đặc trưng đo lường của biến dân số (POP), chúng ta tiến hành phân tích sâu sắc trên bảng Data danso2 Qua quá trình này, chúng ta sẽ thực hiện các thao tác tính toán kỹ lưỡng, mang lại cái nhìn rõ ràng và đầy đủ về động lực và biến động của dân số trong bộ Data.
summary(danso2$POP)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.363e+03 2.916e+05 3.834e+06 1.265e+08 1.679e+07 7.909e+09
Kết quả cho ta biết những thông tin sau:
sum(danso2$POP)
## [1] 2.312891e+12
Kết quả cho ta biết:
mean(danso2$POP,na.rm = T)
## [1] 126470437
Kết quả cho ta biết:
length(danso2$POP)
## [1] 18288
Kết quả cho ta biết:
var(danso2$POP)
## [1] 3.467458e+17
Kết quả cho ta biết:
sd(danso2$POP)
## [1] 588851231
Kết quả cho ta biết:
median(danso2$POP)
## [1] 3833998
Kết quả cho ta biết:
quantile(danso2$POP, probs = c(.3,.6,.9))
## 30% 60% 90%
## 564010.9 6634254.0 86805434.0
Kết quả cho ta biết:
30% Quantile: Giá trị mà 30% dữ liệu dân số nhỏ hơn. Trong trường hợp này, giá trị là 564,010.9, tức là 30% quốc gia hoặc khu vực có dân số dưới giá trị này.
60% Quantile: Giá trị mà 60% dữ liệu dân số nhỏ hơn. Trong trường hợp này, giá trị là 6,634,254.0, chỉ ra rằng 60% quốc gia hoặc khu vực có dân số dưới giá trị này.
90% Quantile: Giá trị mà 90% dữ liệu dân số nhỏ hơn. Trong trường hợp này, giá trị là 86,805,434.0, tức là 90% quốc gia hoặc khu vực có dân số dưới giá trị này.
Ta tiếp tục sử dụng bảng Data danso2 để thực hiện các thao tác tính toán các đặc trưng đo lường theo nhóm. Các câu lệnh này được thực hiện theo hai hay nhiều biến.
tn <- danso2 %>% group_by(Y) %>% summarise(mean_of_POP= mean(POP))
tn
## # A tibble: 72 × 2
## Y mean_of_POP
## <int> <dbl>
## 1 1950 60829433.
## 2 1951 61935622.
## 3 1952 63125733.
## 4 1953 64387245.
## 5 1954 65692705.
## 6 1955 67059890.
## 7 1956 68452221.
## 8 1957 69895388.
## 9 1958 71372168.
## 10 1959 72758739.
## # ℹ 62 more rows
Kết quả cho ta biết:
tn1 <- danso2 %>% group_by(Y) %>% summarise(n = n(),med_of_POP= median(POP))
tn1
## # A tibble: 72 × 3
## Y n med_of_POP
## <int> <int> <dbl>
## 1 1950 254 2077509
## 2 1951 254 2151493
## 3 1952 254 2221408
## 4 1953 254 2279917
## 5 1954 254 2317102.
## 6 1955 254 2334936
## 7 1956 254 2352930.
## 8 1957 254 2371338.
## 9 1958 254 2390104
## 10 1959 254 2410098.
## # ℹ 62 more rows
Kết quả cho ta biết:
tn2 <- danso2 %>% group_by(QG) %>% summarise(mean_of_POP= mean(POP))
tn2
## # A tibble: 254 × 2
## QG mean_of_POP
## <chr> <dbl>
## 1 Afghanistan 16640671.
## 2 Africa (UN) 643444771.
## 3 Albania 2632759.
## 4 Algeria 23456439.
## 5 American Samoa 39194.
## 6 Andorra 43576.
## 7 Angola 13175864.
## 8 Anguilla 8906.
## 9 Antigua and Barbuda 68605.
## 10 Argentina 30799573.
## # ℹ 244 more rows
Kết quả cho ta biết:
tn3 <- danso2 %>% group_by(Y,QG) %>% summarise(mean_of_POP= mean(POP),.groups = 'drop')
tn3
## # A tibble: 18,288 × 3
## Y QG mean_of_POP
## <int> <chr> <dbl>
## 1 1950 Afghanistan 7480464
## 2 1950 Africa (UN) 227549260
## 3 1950 Albania 1252587
## 4 1950 Algeria 9019866
## 5 1950 American Samoa 19057
## 6 1950 Andorra 6028
## 7 1950 Angola 4478186
## 8 1950 Anguilla 5036
## 9 1950 Antigua and Barbuda 45456
## 10 1950 Argentina 17017748
## # ℹ 18,278 more rows
Kết quả cho ta biết:
Bộ dữ liệu world_population mô tả về dân số cung cấp ước tính dân số toàn cầu, với Trung Quốc và Ấn Độ là hai quốc gia đông dân nhất. Đồng thời cũng cung cấp thông tin về dân số của 11 quốc gia đông dân, các quốc gia có dân số ít hơn và kỳ vọng tăng trưởng dân số trong tương lai. Bộ dữ liệu cũng chứa thông tin chi tiết về từng quốc gia, bao gồm diện tích, mật độ dân số, và các chỉ số khác.
Trước tiên để đọc về bộ dữ liệu từ một tệp CSV vào trong R, ta có thể thực hiện bằng các câu lệnh sau:
#Sử dụng lệnh read.csv đọc dữ liệu từ file csv vào R và gán vào "danso"
WPOP <- read.csv(file = "C:/Users/HP/Downloads/world_population.csv")
Để đọc mô tả chi tiết về cấu trúc của bộ dữ liệu ta sử dụng câu lệnh str
#Sử dụng lệnh str để xem cấu trúc của bộ dữ liệu "danso"
str(WPOP)
## 'data.frame': 234 obs. of 17 variables:
## $ Rank : int 36 138 34 213 203 42 224 201 33 140 ...
## $ CCA3 : chr "AFG" "ALB" "DZA" "ASM" ...
## $ Country.Territory : chr "Afghanistan" "Albania" "Algeria" "American Samoa" ...
## $ Capital : chr "Kabul" "Tirana" "Algiers" "Pago Pago" ...
## $ Continent : chr "Asia" "Europe" "Africa" "Oceania" ...
## $ X2022.Population : int 41128771 2842321 44903225 44273 79824 35588987 15857 93763 45510318 2780469 ...
## $ X2020.Population : int 38972230 2866849 43451666 46189 77700 33428485 15585 92664 45036032 2805608 ...
## $ X2015.Population : int 33753499 2882481 39543154 51368 71746 28127721 14525 89941 43257065 2878595 ...
## $ X2010.Population : int 28189672 2913399 35856344 54849 71519 23364185 13172 85695 41100123 2946293 ...
## $ X2000.Population : int 19542982 3182021 30774621 58230 66097 16394062 11047 75055 37070774 3168523 ...
## $ X1990.Population : int 10694796 3295066 25518074 47818 53569 11828638 8316 63328 32637657 3556539 ...
## $ X1980.Population : int 12486631 2941651 18739378 32886 35611 8330047 6560 64888 28024803 3135123 ...
## $ X1970.Population : int 10752971 2324731 13795915 27075 19860 6029700 6283 64516 23842803 2534377 ...
## $ Area..km.. : int 652230 28748 2381741 199 468 1246700 91 442 2780400 29743 ...
## $ Density..per.km.. : num 63.1 98.9 18.9 222.5 170.6 ...
## $ Growth.Rate : num 1.026 0.996 1.016 0.983 1.01 ...
## $ World.Population.Percentage: num 0.52 0.04 0.56 0 0 0.45 0 0 0.57 0.03 ...
Giải thích kết quả mà câu lệnh trả về
Kiểm tra có tất cả bao nhiêu quốc gia trong bộ dữ liệu trên bằng câu lệnh sau:
#Lập bảng tần số mà tên các quốc gia được lặp lại và gán vào soQG
soQG2 <- table(WPOP$Country.Territory)
#Xem số lượng quốc gia được quan sát
dim(soQG2)
## [1] 234
Kết quả trả về cho ta thấy có 234 quốc gia trong bộ dữ liệu.
Kiểm tra giá trị bị thiếu trong bộ dữ liệu trên bằng câu lệnh sau:
#Kiểm tra xem có bao nhiêu giá trị bị thiếu
sum(is.na(WPOP))
## [1] 0
Kết quả trả về cho ta thấy không có giá trị bị thiếu.
Bộ dữ liệu world_population.csv chứa một lượng thông tin đồ sộ, tuy nhiên chúng ta không thể dùng hết được dữ liệu thu về. Trong quá trình phân tích, chúng ta sẽ tiến hành các bước thực hiện sau đây.
Ta sẽ chọn ra những biến là các biến sau Ta tiến hành gọi packsge tidyverse dùng để sử dụng toán tử pipe %>%.
# Gọi ra gói tidyverse
library(tidyverse)
# Chọn ra các biến cần thiết để xử lý
WPOP2 <- WPOP %>% select(Rank, Country.Territory, X2022.Population, X2020.Population, X2015.Population, X2010.Population, Growth.Rate, World.Population.Percentage)
names(WPOP2)
## [1] "Rank" "Country.Territory"
## [3] "X2022.Population" "X2020.Population"
## [5] "X2015.Population" "X2010.Population"
## [7] "Growth.Rate" "World.Population.Percentage"
Với câu lệnh trên ta hoàn tất để chọn ra biến là:
Ta tiến hành đổi tên biến để dễ dàng thao tác hơn
# Lệnh đổi tên biến
WPOP2 <- WPOP2 %>% rename('R' = Rank, 'QG2' = Country.Territory , 'POP22' = X2022.Population, 'POP20' = X2020.Population, 'POP15' = X2015.Population, 'POP10' = X2010.Population, 'GR' = Growth.Rate, 'TLDS' = World.Population.Percentage)
names(WPOP2)
## [1] "R" "QG2" "POP22" "POP20" "POP15" "POP10" "GR" "TLDS"
Với câu lệnh và kết quả trên thì tên biến đã được đổi tương ứng với thứ tự biến trong data WPOP2.
Đối với câu lệnh table(), chúng ta có khả năng xem xét tần suất xuất hiện của một biến trong tập dữ liệu. Điều này mang lại lợi ích lớn trong việc tổng hợp một lượng lớn dữ liệu thành một bảng ngắn gọn, giúp quá trình phân tích trở nên thuận tiện và dễ dàng
# Lập bảng tần số cho biến "R" (Xếp hạng)
R1 <- cut(WPOP2$TLDS,3)
table(R1)
Kết quả trên cho ta biết:
Sử dụng hàm cut() để chia dữ liệu trong biến Tỉ lệ dân số thuộc data WPOP2 thành 3 nhóm * (-0.0179,5.96] xuất hiện với 232 quan sát. * (5.96,11.9] xuất hiện với 0 quan sát. * (11.9,17.9] xuất hiện với 2 quan sát.
# Lập bảng tần số cho biến "R" (Xếp hạng)
R2 <- cut(WPOP2$GR,3)
table(R2)
Kết quả trên cho ta biết:
Sử dụng hàm cut() để chia dữ liệu trong biến Tỉ lệ dân số thuộc data WPOP2 thành 3 nhóm * (0.912,0.964] xuất hiện với 1 quan sát. * (0.964,1.02] xuất hiện với 174 quan sát. * (1.02,1.07] xuất hiện với 59 quan sát.
Với câu lệnh group_by cho phép lập bảng với nhiều biến cùng lúc.
**BẢNG TẦN SỐ TỈ LỆ TRƯỞNG DÂN SỐ VÀ TỈ LỆ DÂN SỐ CỦA CÁC QUỐC GIA/KHU VỰC
WPOP3 <- WPOP2 %>% group_by(QG2, GR, TLDS) %>% summarise(n= n(), .groups = 'drop')
WPOP3
## # A tibble: 234 × 4
## QG2 GR TLDS n
## <chr> <dbl> <dbl> <int>
## 1 Afghanistan 1.03 0.52 1
## 2 Albania 0.996 0.04 1
## 3 Algeria 1.02 0.56 1
## 4 American Samoa 0.983 0 1
## 5 Andorra 1.01 0 1
## 6 Angola 1.03 0.45 1
## 7 Anguilla 1.01 0 1
## 8 Antigua and Barbuda 1.01 0 1
## 9 Argentina 1.01 0.57 1
## 10 Armenia 0.996 0.03 1
## # ℹ 224 more rows
Kết quả trên cho thấy:
*Bảng tấn số với lệnh trên cho ra tần suất dữ liệu của các biến ‘QG2’, ‘GR’, ‘TLDS’. Câu lệnh summarise(n= n() cho ra số n tần suất của dữ liệu và groups = ‘drop’ giúp chia nhóm dữ liệu.
Để đạt được tính toán chính xác và chi tiết về các đặc trưng đo lường của biến dân số vào năm 2022 (POP22), chúng ta tiến hành phân tích sâu sắc trên bảng Data WPOP2 Qua quá trình này, chúng ta sẽ thực hiện các thao tác tính toán kỹ lưỡng, mang lại cái nhìn rõ ràng và đầy đủ về động lực và biến động của dân số trong bộ Data.
summary(WPOP2$POP22)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 5.100e+02 4.197e+05 5.560e+06 3.407e+07 2.248e+07 1.426e+09
Kết quả cho ta biết những thông tin sau:
sum(WPOP2$POP22)
## [1] 7973413042
Kết quả cho ta biết:
mean(WPOP2$POP22,na.rm = T)
## [1] 34074415
Kết quả cho ta biết:
length(WPOP2$POP22)
## [1] 234
Kết quả cho ta biết:
var(WPOP2$POP22)
## [1] 1.870505e+16
Kết quả cho ta biết:
sd(WPOP2$POP22)
## [1] 136766425
Kết quả cho ta biết:
median(WPOP2$POP22)
## [1] 5559945
Kết quả cho ta biết:
quantile(WPOP2$POP22, probs = c(.3,.6,.9))
## 30% 60% 90%
## 806098.9 9964403.8 59636961.7
Kết quả cho ta biết:
30% Quantile: Giá trị mà 30% dữ liệu dân số nhỏ hơn. Trong trường hợp này, giá trị là 806098.9 , tức là 30% quốc gia hoặc khu vực có dân số dưới giá trị này.
60% Quantile: Giá trị mà 60% dữ liệu dân số nhỏ hơn. Trong trường hợp này, giá trị là 9964403.8, chỉ ra rằng 60% quốc gia hoặc khu vực có dân số dưới giá trị này.
90% Quantile: Giá trị mà 90% dữ liệu dân số nhỏ hơn. Trong trường hợp này, giá trị là 59636961.7 , tức là 90% quốc gia hoặc khu vực có dân số dưới giá trị này.
Dựa trên những nhận xét từ phân tích bộ dữ liệu dân số (world_population.csv), chúng ta có thể rút ra một số phân tích quan trọng về đặc điểm của các quốc gia và lãnh thổ trên toàn thế giới.
Những phân tích này có thể giúp ta hiểu rõ hơn về cấu trúc dân số thế giới, sự chênh lệch giữa các quốc gia, và đóng góp của chúng vào tình hình dân số toàn cầu. Đồng thời, chúng cũng là cơ sở để tiếp tục phân tích chi tiết hơn về các yếu tố ảnh hưởng đến dân số và tăng trưởng dân số của các quốc gia cụ thể.