“01:23:01, 27 - 01 - 2024”
Nhiệm vụ 3.1 tiến hành thao tác 1 số lệnh cơ bản trên population-and-demography.csv thống kê về dân số và nhân khẩu học ở các quốc gia
Các mô tả cơ bản về dataset
Là 1 data frame
Có 24 cột tương đương với 24 biến
Các cột lần lượt là
Country.name : Tên quốc gia
Year : Năm
Population : Dân số
Population of children under the age of 1 : Dân số trẻ em dưới 1 tuổi
Population of children under the age of 5 : Dân số trẻ em dưới 5 tuổi
Population of children under the age of 15 : Dân số trẻ em dưới 15 tuổi
Population under the age of 25 : Dân số dưới 25 tuổi
Population aged 15 to 64 years : Dân số từ 15 đến 64 tuổi
Population older than 15 years : Dân số trên 15 tuổi
Population older than 18 years : Dân số trên 18 tuổi
Population at age 1 : Dân số lúc 1 tuổi
Population aged 1 to 4 years : Dân số từ 1 đến 4 tuổi
Population aged 5 to 9 years : Dân số từ 5 đến 9 tuổi
Population aged 10 to 14 years : Dân số từ 10 đến 14 tuổi
Population aged 15 to 19 years : Dân số từ 15 đến 19 tuổi
Population aged 20 to 29 years : Dân số từ 20 đến 29 tuổi
Population aged 30 to 39 years : Dân số từ 30 đến 39 tuổi
Population aged 40 to 49 years : Dân số từ 40 đến 49 tuổi
Population aged 50 to 59 years : Dân số từ 50 đến 59 tuổi
Population aged 60 to 69 years : Dân số từ 60 đến 69 tuổi
Population aged 70 to 79 years : Dân số từ 70 đến 79 tuổi
Population aged 80 to 89 years : Dân số từ 80 đến 89 tuổi
Population aged 90 to 99 years : Dân số từ 90 đến 99 tuổi
Population older than 100 years : Dân số trên 100 tuổi
library(xlsx)
dq <- read.xlsx(file.choose(), sheetIndex = 1, header = T)
đọc dữ liệu từ excel và gán vào object dq
is.data.frame(dq)
## [1] TRUE
Kiểm tra xem “dq” có phải là data frame hay không, nếu đúng thì TRUE và ngược lại
length(dq)
## [1] 24
cho ra kết quả độ dài, ở đây là số cột của “dq”
names(dq)
## [1] "Country.name"
## [2] "Year"
## [3] "Population"
## [4] "Population.of.children.under.the.age.of.1"
## [5] "Population.of.children.under.the.age.of.5"
## [6] "Population.of.children.under.the.age.of.15"
## [7] "Population.under.the.age.of.25"
## [8] "Population.aged.15.to.64.years"
## [9] "Population.older.than.15.years"
## [10] "Population.older.than.18.years"
## [11] "Population.at.age.1"
## [12] "Population.aged.1.to.4.years"
## [13] "Population.aged.5.to.9.years"
## [14] "Population.aged.10.to.14.years"
## [15] "Population.aged.15.to.19.years"
## [16] "Population.aged.20.to.29.years"
## [17] "Population.aged.30.to.39.years"
## [18] "Population.aged.40.to.49.years"
## [19] "Population.aged.50.to.59.years"
## [20] "Population.aged.60.to.69.years"
## [21] "Population.aged.70.to.79.years"
## [22] "Population.aged.80.to.89.years"
## [23] "Population.aged.90.to.99.years"
## [24] "Population.older.than.100.years"
cho ra tên các cột của “dq”
dim(dq)
## [1] 18288 24
data này có 18288 hàng và 24 cột
sum(is.na(dq))
## [1] 0
tổng số ô trống của object “dq”
Kết quả trả về tương ứng với dq không có ô trống nào ## 1.3 Thống kê dữ liệu
Thực hiện thống kê mô tả datasets này ta được kết quả như sau, ý nghĩa các cột:
n_missing: số ô dư liệu trống
complete_rate: tỷ lệ ô có dữ liệu
mean: trung bình
sd: độ lệch chuẩn
p0: giá trị nhỏ nhất
p25: Phân vị thứ nhất
p50: Phân vị thứ hai cũng chính là trung vị
p75: phân vị thứ ba
p100: giá trị lớn nhất
hist: biểu đồ Histogram
Xác định các thông tin của dq
library(skimr)
skim(dq)
Name | dq |
Number of rows | 18288 |
Number of columns | 24 |
_______________________ | |
Column type frequency: | |
character | 1 |
numeric | 23 |
________________________ | |
Group variables | None |
Variable type: character
skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
---|---|---|---|---|---|---|---|
Country.name | 0 | 1 | 4 | 59 | 0 | 254 | 0 |
Variable type: numeric
skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
---|---|---|---|---|---|---|---|---|---|---|
Year | 0 | 1 | 1985.50 | 20.78 | 1950 | 1967.75 | 1985.5 | 2003.25 | 2021 | ▇▇▇▇▇ |
Population | 0 | 1 | 126470436.62 | 588851230.77 | 1363 | 291591.50 | 3833997.5 | 16785463.50 | 7909295000 | ▇▁▁▁▁ |
Population.of.children.under.the.age.of.1 | 0 | 1 | 3133496.86 | 14167006.03 | 25 | 6663.75 | 88352.0 | 463000.50 | 139783730 | ▇▁▁▁▁ |
Population.of.children.under.the.age.of.5 | 0 | 1 | 14825709.57 | 67384368.62 | 136 | 31995.25 | 423784.5 | 2160046.50 | 690360700 | ▇▁▁▁▁ |
Population.of.children.under.the.age.of.15 | 0 | 1 | 41095227.11 | 188416973.54 | 416 | 89541.50 | 1186121.5 | 5905944.75 | 2015023400 | ▇▁▁▁▁ |
Population.under.the.age.of.25 | 0 | 1 | 63762600.31 | 294251869.66 | 623 | 139541.50 | 1843099.5 | 9025129.75 | 3239281000 | ▇▁▁▁▁ |
Population.aged.15.to.64.years | 0 | 1 | 77429505.08 | 367651914.71 | 748 | 170263.50 | 2246772.0 | 9641250.00 | 5132999000 | ▇▁▁▁▁ |
Population.older.than.15.years | 0 | 1 | 85372101.76 | 404866940.61 | 849 | 186716.00 | 2482104.0 | 10354345.50 | 5893678600 | ▇▁▁▁▁ |
Population.older.than.18.years | 0 | 1 | 78196242.04 | 372017010.49 | 752 | 166417.50 | 2238130.5 | 9239904.00 | 5516283000 | ▇▁▁▁▁ |
Population.at.age.1 | 0 | 1 | 3011212.81 | 13661998.41 | 26 | 6473.75 | 85824.0 | 440787.50 | 138478740 | ▇▁▁▁▁ |
Population.aged.1.to.4.years | 0 | 1 | 11692212.72 | 53238243.89 | 101 | 25269.25 | 334454.0 | 1697850.75 | 550970400 | ▇▁▁▁▁ |
Population.aged.5.to.9.years | 0 | 1 | 13598575.21 | 62534310.11 | 138 | 29406.25 | 392220.5 | 1947260.75 | 683611800 | ▇▁▁▁▁ |
Population.aged.10.to.14.years | 0 | 1 | 12670942.28 | 58775457.46 | 73 | 27879.50 | 363895.5 | 1796754.00 | 659934300 | ▇▁▁▁▁ |
Population.aged.15.to.19.years | 0 | 1 | 11782258.92 | 55126036.18 | 110 | 26296.50 | 336969.5 | 1626210.75 | 623576060 | ▇▁▁▁▁ |
Population.aged.20.to.29.years | 0 | 1 | 20872880.04 | 98860990.50 | 158 | 45050.75 | 609723.5 | 2758738.50 | 1210493200 | ▇▁▁▁▁ |
Population.aged.30.to.39.years | 0 | 1 | 17158704.11 | 82404600.95 | 137 | 36608.25 | 486290.5 | 2113149.00 | 1165207300 | ▇▁▁▁▁ |
Population.aged.40.to.49.years | 0 | 1 | 13622138.99 | 66008221.21 | 119 | 27440.25 | 364712.5 | 1556334.00 | 976407200 | ▇▁▁▁▁ |
Population.aged.50.to.59.years | 0 | 1 | 10177069.11 | 49288480.77 | 95 | 19649.75 | 264781.5 | 1203386.00 | 851356900 | ▇▁▁▁▁ |
Population.aged.60.to.69.years | 0 | 1 | 6801756.84 | 32712918.99 | 64 | 12603.00 | 168417.5 | 845242.75 | 598067140 | ▇▁▁▁▁ |
Population.aged.70.to.79.years | 0 | 1 | 3618710.03 | 17491538.61 | 31 | 6221.00 | 81824.0 | 436710.00 | 330491170 | ▇▁▁▁▁ |
Population.aged.80.to.89.years | 0 | 1 | 1195799.30 | 6238308.33 | 6 | 1818.75 | 20269.5 | 133380.50 | 131835590 | ▇▁▁▁▁ |
Population.aged.90.to.99.years | 0 | 1 | 142784.38 | 853350.39 | 0 | 154.75 | 1468.5 | 12499.00 | 22223974 | ▇▁▁▁▁ |
Population.older.than.100.years | 0 | 1 | 3107.72 | 20951.57 | 0 | 0.00 | 13.0 | 163.00 | 593166 | ▇▁▁▁▁ |
Các ký hiệu tên tương ứng lần lượt từ cột 1 đến cột 24
Country name: ‘name’
Year: ‘y’
Population: ‘p’
Population of children under the age of 1: ‘pu1’
Population of children under the age of 5: ‘pu5’
Population of children under the age of 15: ‘pu15’
Population under the age of 25: ‘pu25’
Population aged 15 to 64 years: ‘p15t64’
Population older than 15 years: ‘pt15’
Population older than 18 years: ‘pt18’
Population at age 1: ‘p1’
Population aged 1 to 4 years: ‘p1t4’
Population aged 5 to 9 years: ‘p5t9’
Population aged 10 to 14 years: ‘p10t14’
Population aged 15 to 19 years: ‘p15t19’
Population aged 20 to 29 years: ‘p20t29’
Population aged 30 to 39 years: ‘p30t39’
Population aged 40 to 49 years: ‘p40t49’
Population aged 50 to 59 years: ‘p50t59’
Population aged 60 to 69 years: ‘p60t69’
Population aged 70 to 79 years: ‘p70t79’
Population aged 80 to 89 years: ‘p80t89’
Population aged 90 to 99 years: ‘p90t99’
Population older than 100 years: ‘po100’
names(dq) = c('name','y','p','pu1','pu5','pu15','pu25','p15t64','pt15','pt18','p1','p1t4','p5t9','p10t14','p15t19','p20t29','p30t39','p40t49','p50t59','p60t69','p70t79','p80t89','p90t99','po100')
Chọn ra 6 cột tương ứng là “name”,“y”,“p”,“pu1”,“p1”,“po100” và chọn những hàng bắt đầu bằng chữ C gán vào object dq18.
Kết quả là: 1440 hàng và 6 cột
library(dplyr)
##
## 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
library(stringr)
dq18 <- select(dq,name,y,p,pu1,p1,po100) %>% filter(str_detect(name, "^C"))
str(dq18)
## 'data.frame': 1440 obs. of 6 variables:
## $ name : chr "Cambodia" "Cambodia" "Cambodia" "Cambodia" ...
## $ y : num 1950 1951 1952 1953 1954 ...
## $ p : num 4380384 4485394 4592881 4702070 4814380 ...
## $ pu1 : num 182915 187020 191505 196556 201835 ...
## $ p1 : num 160034 168136 172102 176400 181257 ...
## $ po100: num 2 2 2 2 2 2 1 1 1 1 ...
Chọn ra 6 cột tương ứng là “name”,“y”,“p”,“pu1”,“p1”,“po100” và chọn những hàng bắt đầu bằng chữ C gán vào object dq18.
Câu lệnh biểu thị lệnh so sánh trên 2 cột là cột pu1 và po100
Nếu có giá trị nào trên cột pu1 của hàng nào đó bằng 0 (dq18$pu1 == 0 đúng), thì giá trị của cột pu1 trong hàng đó sẽ được thay thế thành ‘Khong’
Nếu có giá trị nào trên cột pu1 của hàng nào đó không bằng 0 (dq18$pu1 == 0 sai), thì giá trị của cột pu1 trong hàng đó sẽ được thay thế thành ‘Co’
dq18$pu1.phanloai <- ifelse(dq18$pu1 == 0, 'Khong Co', 'Co')
str(dq18)
## 'data.frame': 1440 obs. of 7 variables:
## $ name : chr "Cambodia" "Cambodia" "Cambodia" "Cambodia" ...
## $ y : num 1950 1951 1952 1953 1954 ...
## $ p : num 4380384 4485394 4592881 4702070 4814380 ...
## $ pu1 : num 182915 187020 191505 196556 201835 ...
## $ p1 : num 160034 168136 172102 176400 181257 ...
## $ po100 : num 2 2 2 2 2 2 1 1 1 1 ...
## $ pu1.phanloai: chr "Co" "Co" "Co" "Co" ...
*Tạo một biến mới trong bảng dữ liệt datasets dq18 bằng cách chia biến p thành nhiều khoảng và gắn tên cho từng khoảng dựa trên từng giá trị của nó
dq18$p: là biến đang muốn chia thành khoảng
5 là số lượng khoảng
labels = c(‘Qua it’,‘It’,‘Trung binh’,‘Nhieu’,‘Qua nhieu’) là tên của các khoảng
dq18$p.cut <- cut(dq18$p,5,labels = c('Qua it','It','Trung binh','Nhieu','Qua nhieu'))
str(dq18)
## 'data.frame': 1440 obs. of 8 variables:
## $ name : chr "Cambodia" "Cambodia" "Cambodia" "Cambodia" ...
## $ y : num 1950 1951 1952 1953 1954 ...
## $ p : num 4380384 4485394 4592881 4702070 4814380 ...
## $ pu1 : num 182915 187020 191505 196556 201835 ...
## $ p1 : num 160034 168136 172102 176400 181257 ...
## $ po100 : num 2 2 2 2 2 2 1 1 1 1 ...
## $ pu1.phanloai: chr "Co" "Co" "Co" "Co" ...
## $ p.cut : Factor w/ 5 levels "Qua it","It",..: 1 1 1 1 1 1 1 1 1 1 ...
**Kết quả: biến mới p.cut sẽ chứa các tên tương ứng (‘Qua it’,‘It’,‘Trung binh’,‘Nhieu’,‘Qua nhieu’)
Với khoảng mà giá trị của p thuộc vào. Nó tạo ra một biến phân loại dựa trên giá trị của biến số p.
dq1 <- table(dq18$y)
str(dq1)
## 'table' int [1:72(1d)] 20 20 20 20 20 20 20 20 20 20 ...
## - attr(*, "dimnames")=List of 1
## ..$ : chr [1:72] "1950" "1951" "1952" "1953" ...
dq1 <- table(dq18$y)
str(dq1)
## 'table' int [1:72(1d)] 20 20 20 20 20 20 20 20 20 20 ...
## - attr(*, "dimnames")=List of 1
## ..$ : chr [1:72] "1950" "1951" "1952" "1953" ...
dq2 <- table(dq18$y,dq18$p.cut)
str(dq2)
## 'table' int [1:72, 1:5] 19 19 19 19 19 19 19 19 19 19 ...
## - attr(*, "dimnames")=List of 2
## ..$ : chr [1:72] "1950" "1951" "1952" "1953" ...
## ..$ : chr [1:5] "Qua it" "It" "Trung binh" "Nhieu" ...
Kết quả - Bảng tần số có 72 hàng (1:72), có 5 cột (1:5)
Danh sách 1 : đại diện cho năm, được đánh số từ 1 đến 72, tương ứng với các năm “1951” “1952” “1953” …
Danh sách 2: Đại diện cho tên của của các nhóm: “Qua it” “It” “Trung binh” “Nhieu” …
Tính trung bình, phương sai, min, max của cột p
summary(dq18$p)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 6.937e+03 6.158e+05 4.611e+06 5.895e+07 1.143e+07 1.426e+09
Kết quả
Min: Gía trị nhỏ nhất 6.937e+03
1 st Qu: Phân vị thứ nhất 25% dữ liệu nhỏ hơn giá trị 6.158e+05
Median: Trung vị, giá trị ở giữa khi dữ liệu được xếp theo giá trị tăng dần 4.611e+06
Mean: Gía trị trung bình của dữ liệu 5.895e+07
3rd Qu. : Phân vị thứ ba, có 75% dữ liệu nhỏ hơn giá trị 1.143e+07
Max: Gía trị lớn nhất 1.426e+09
Phân tích dân số trung bình theo nhóm quốc gia
group_by(y): Nhóm dữ liệu theo cột “y”. Nghĩa là các phép tổng hợp tiếp theo sẽ được thực hiện cho từng nhóm “y” riêng biệt.
summarise(mean_of_population = mean(p)): Tính trung bình của cột “p” cho mỗi nhóm “name” và tạo ra một cột mới có tên “mean_of_population” để lưu trữ kết quả.
dq3 <- dq18 %>% group_by(name) %>% summarise(mean_of_population = mean(p))
str(dq3)
## tibble [20 × 2] (S3: tbl_df/tbl/data.frame)
## $ name : chr [1:20] "Cambodia" "Cameroon" "Canada" "Cape Verde" ...
## $ mean_of_population: num [1:20] 9323148 11887287 26143393 366402 28276 ...
Kết quả - Cột ‘name’: chứa tên 20 quốc gia
Phân tích số trẻ em dưới 1 tuổi theo nhóm quốc gia và năm
Lệnh này sử dụng dplyr để tạo một tóm tắt của data frame dq18 bằng cách nhóm theo cột name (quốc gia) và y (năm), sau đó tính tổng số lượng (n) và tổng của cột p1 trong mỗi nhóm.
Kết quả sẽ là data frame mới dq4 chứa thông tin tổng hợp theo quốc gia và năm.
dq4 <- dq18 %>% group_by(name,y) %>% summarise(n = n(),sum_of_p1 = sum(p1),.groups = 'drop')
str(dq4)
## tibble [1,440 × 4] (S3: tbl_df/tbl/data.frame)
## $ name : chr [1:1440] "Cambodia" "Cambodia" "Cambodia" "Cambodia" ...
## $ y : num [1:1440] 1950 1951 1952 1953 1954 ...
## $ n : int [1:1440] 1 1 1 1 1 1 1 1 1 1 ...
## $ sum_of_p1: num [1:1440] 160034 168136 172102 176400 181257 ...
Kết quả - Cột ‘name’ : chứa tên các quốc gia bắt đầu bằng chữ C trong dữ liệu
Cột ‘y’ : chứa năm
Cột ‘n’ : chứa số lượng của cặp giá trị ‘name’ và ‘y’
Cột ‘sum_of_p1’ : Chứa tổng giá trị của cột “p1” cho mỗi cặp giá trị “name” và “y”
Tiến hành thao tác một số lệnh cơ bản trên datasets “UNdata_Export_20240126_122832051.xlsx”
Là một data frame
Có 5 cột tương ứng với 5 giá trị
Có 285 hàng tương ứng với 285 quan sát
Có 286 ô trống
Ký hiệu các cột:
library(xlsx)
chtr <- read.xlsx(file.choose(), sheetIndex = 1, header = T)
đọc dữ liệu từ excel và gán vào object chtr
is.data.frame(chtr)
## [1] TRUE
Kiểm tra xem “chtr” có phải là data frame hay không, nếu đúng thì TRUE và ngược lại
length(chtr)
## [1] 5
cho ra kết quả độ dài, ở đây là số cột của “chtr” : 5 cột
names(chtr)
## [1] "Country.or.Area" "Year" "Unit" "Value"
## [5] "Value.Footnotes"
cho ra tên các cột của “chtr”
dim(chtr)
## [1] 285 5
data này có 285 hàng và 5 cột
sum(is.na(chtr))
## [1] 286
tổng số ô trống của object “chtr”
Kết quả trả về tương ứng với chtr có 286 ô trống*
Thực hiện thống kê mô tả datasets này ta được kết quả như sau, ý nghĩa các cột:
n_missing: số ô dư liệu trống
complete_rate: tỷ lệ ô có dữ liệu
mean: trung bình
sd: độ lệch chuẩn
p0: giá trị nhỏ nhất
p25: Phân vị thứ nhất
p50: Phân vị thứ hai cũng chính là trung vị
p75: phân vị thứ ba
p100: giá trị lớn nhất
hist: biểu đồ Histogram
Xác định thông tin cơ bản trong chtr
library(skimr)
skim(chtr)
Name | chtr |
Number of rows | 285 |
Number of columns | 5 |
_______________________ | |
Column type frequency: | |
character | 3 |
numeric | 2 |
________________________ | |
Group variables | None |
Variable type: character
skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
---|---|---|---|---|---|---|---|
Country.or.Area | 0 | 1.00 | 1 | 46 | 0 | 26 | 0 |
Year | 0 | 1.00 | 4 | 74 | 0 | 25 | 0 |
Unit | 3 | 0.99 | 8 | 8 | 0 | 1 | 0 |
Variable type: numeric
skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
---|---|---|---|---|---|---|---|---|---|---|
Value | 3 | 0.99 | 2443.88 | 7727.81 | 0 | 32.5 | 223.26 | 1401.36 | 107329.6 | ▇▁▁▁▁ |
Value.Footnotes | 280 | 0.02 | 1.80 | 0.45 | 1 | 2.0 | 2.00 | 2.00 | 2.0 | ▂▁▁▁▇ |
Các ký hiệu tên tương ứng theo thứ tự lần lượt từ cột 1 đến cột 5
names(chtr)= c('name2','y2','un','Vl','Vnote')
names(chtr)
## [1] "name2" "y2" "un" "Vl" "Vnote"
Chọn ra 3 cột tương ứng là “name2”,“y2”,“Vl” và chọn những hàng bắt đầu bằng chữ C gán vào object chtr1.
library(dplyr)
library(stringr)
chtr1 <- select(chtr,name2,y2,Vl) %>% filter(str_detect(name2, "^C"))
str(chtr1)
## 'data.frame': 28 obs. of 3 variables:
## $ name2: chr "Chile" "Chile" "Chile" "Chile" ...
## $ y2 : chr "2016" "2015" "2014" "2013" ...
## $ Vl : num 535 281 214 489 564 ...
Nếu giá trị trong cột “Vl” nhỏ hơn 50,000, thì giá trị tương ứng trong cột “Giatri” sẽ là ‘Ít’.
Nếu giá trị trong cột “Vl” nằm trong khoảng từ 50,000 đến 100,000, thì giá trị tương ứng trong cột “Giatri” sẽ là ‘Trung Bình’.
Nếu giá trị trong cột “Vl” lớn hơn 100,000, thì giá trị tương ứng trong cột “Giatri” sẽ là ‘Nhiều’.
chtr1$Vl.Giatri <- case_when(chtr1$Vl < 50.000 ~ 'It', chtr1$Vl >= 50.000 & chtr1$Vl <= 100.000 ~ 'Trung Binh', chtr1$Vl > 100.000 ~ 'Nhieu')
str(chtr1)
## 'data.frame': 28 obs. of 4 variables:
## $ name2 : chr "Chile" "Chile" "Chile" "Chile" ...
## $ y2 : chr "2016" "2015" "2014" "2013" ...
## $ Vl : num 535 281 214 489 564 ...
## $ Vl.Giatri: chr "Nhieu" "Nhieu" "Nhieu" "Nhieu" ...
Lệnh này Chia phạm vi giá trị của cột “Vl” thành 3 khoảng và gán tên cho mỗi khoảng là ‘Giatri1’, ‘Giatri2’, và ‘Giatri3’. Các giá trị của cột “Vl” sẽ được gán vào các khoảng tương ứng.
chtr1$Vl.cut <- cut(chtr1$Vl, 3, labels = c('Giatri1', 'Giatri2', 'Giatri3'))
str(chtr1)
## 'data.frame': 28 obs. of 5 variables:
## $ name2 : chr "Chile" "Chile" "Chile" "Chile" ...
## $ y2 : chr "2016" "2015" "2014" "2013" ...
## $ Vl : num 535 281 214 489 564 ...
## $ Vl.Giatri: chr "Nhieu" "Nhieu" "Nhieu" "Nhieu" ...
## $ Vl.cut : Factor w/ 3 levels "Giatri1","Giatri2",..: 3 2 2 3 3 1 1 1 1 1 ...
Bảng tần số hiển thị số lượng quan sát cho một cột giá trị ‘Vl.cut’ cho từng quốc gia trong ‘name2’.
table(chtr1$name2,chtr1$Vl.cut)
##
## Giatri1 Giatri2 Giatri3
## Chile 0 2 3
## China, Hong Kong Special Administrative Region 14 0 0
## Cyprus 9 0 0
Tính trung bình, phương sai, min, max của cột ‘Vl’
summary(chtr$Vl)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0.0 32.5 223.3 2443.9 1401.4 107329.6 3
Kết quả - Min.: Giá trị nhỏ nhất trong dữ liệu. Trong trường hợp này, giá trị nhỏ nhất của cột v là 0.0.
1st Qu.: Phần vị phân vị thứ nhất . Khoảng 25% giá trị trong dữ liệu nhỏ hơn hoặc bằng giá trị này. Trong trường hợp này, giá trị 1st Qu. là 32.5 .
Median: Giá trị trung bình . Khoảng 50% giá trị trong dữ liệu nhỏ hơn hoặc bằng giá trị này. Trong trường hợp này, giá trị Median là 223.3 .
Mean: Giá trị trung bình của dữ liệu. Trong trường hợp này, giá trị Mean là 2443.9.
3rd Qu.: Phần vị phân vị thứ ba . Khoảng 75% giá trị trong dữ liệu nhỏ hơn hoặc bằng giá trị này. Trong trường hợp này, giá trị 3rd Qu. là 1401.4.
Max.: Giá trị lớn nhất trong dữ liệu. Trong trường hợp này, giá trị lớn nhất của cột Vl là 107329.6.
NA’s: Gía trị trống có 3
Phân tích dân số trung bình theo nhóm quốc gia
group_by(y2): Nhóm dữ liệu theo cột “y2”. Nghĩa là các phép tổng hợp tiếp theo sẽ được thực hiện cho từng nhóm “y2” riêng biệt.
summarise(mean_of_population = mean(Vl)): Tính trung bình của cột “Vl” cho mỗi nhóm “name2” và tạo ra một cột mới có tên “mean_of_population” để lưu trữ kết quả.
chtr2 <- chtr1 %>% group_by(name2) %>% summarise(mean_of_population = mean(Vl))
str(chtr2)
## tibble [3 × 2] (S3: tbl_df/tbl/data.frame)
## $ name2 : chr [1:3] "Chile" "China, Hong Kong Special Administrative Region" "Cyprus"
## $ mean_of_population: num [1:3] 416.4 37.6 13.4
Kết quả - Cột ‘name2’: chứa tên 3 quốc gia là: “Chile” “China, Hong Kong Special Administrative Region” “Cyprus”