Thực hiện các thao tác đã học trên bộ dữ liệu population-and-demography
Bộ dữ liệu population-and-demography cung cấp thông tin về dân số và nhân khẩu học của các quốc gia và vùng lãnh thổ trên thế giới theo nhóm tuổi từ năm 1950 đến năm 2021
library(csv)
pnd <- read.csv("C:/Users/HELLO/Documents/R/population-and-demography.csv", header = T)
Để việc thao tác trên bộ dữ liệu được nhanh chóng và tiện lợi hơn ta thực hiện đổi tên các biến
pnd2 <- pnd
names(pnd2) <- c('country', 'yr', 'pop', 'u1', 'u5', 'u15', 'u25', 'a15to64', 'o15', 'o18', 'a1', 'a1to4', 'a5to9', 'a10to14', 'a15to19', 'a20to29', 'a30to39', 'a40to49', 'a50to59', 'a60to69', 'a70to79', 'a80to89', 'a90to99', 'o100')
Ở đây ta chọn:
library(dplyr)
pnd3 <- filter(pnd2,country=='United Kingdom'|country=='United States'|country=='France'|country=='Russia'|country=='China')
table(pnd3$country)
##
## China France Russia United Kingdom United States
## 72 72 72 72 72
Kết quả tần số cho ra 72 có nghĩa là chúng ta đang phân tích dân số của các nước trong khoảng thời gian 72 năm
Thêm cột web.domain để chia các nước theo tên miền internet
library('DT')
pnd4 <- pnd3
pnd4$web.domain <- ifelse(pnd4$country == 'China','cn',ifelse(pnd4$country == 'France','fr', ifelse(pnd4$country == 'Russia','ru', ifelse(pnd4$country == 'United Kingdom','uk', 'us'))))
datatable(pnd4)
Anh - Tên đầy đủ là Liên hiệp Vương quốc Anh và Bắc Ireland là một quốc đảo có chủ quyền tại châu Âu. Quốc gia này nằm ngoài khơi châu Âu lục địa, bao gồm toàn bộ đảo Anh và một phần phía đông bắc của đảo Ireland cùng nhiều đảo nhỏ khác
Dân số nước Anh qua từng năm tăng giảm không đều và tỷ lệ tăng dân số có xu hướng ngày càng giảm, điều này được thể hiện qua 2 biểu đồ bên dưới.
options(scipen=999)
library(ggplot2)
library(scales)
library(dplyr)
uk <- filter(pnd2, country == 'United Kingdom')
uk %>% ggplot(aes(x = yr, y = pop)) +
geom_col(fill ='pink') +
xlab('Năm') +
ylab('Dân số') +
labs(title = 'Dân số nước Anh từ năm 1950 đến năm 2021')
l <- length(uk$yr)
ukpi <- vector()
for(i in 1:(l)) {
ukpi[i]= (uk$pop[i+1]/uk$pop[i]-1)}
ggplot(uk, aes(x = yr, y = ukpi)) +
geom_col(fill ='navy') +
xlab('Năm') +
ylab('Tỉ lệ tăng') +
labs(title = 'Tỉ lệ tăng dân số ở Anh từ năm 1950 đến năm 2021')
summary(uk$pop)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 50055068 55096029 56682475 57563900 59736313 67281040
Mỹ - tên chính thức là Hợp chủng quốc Hoa Kỳ là một quốc gia cộng hòa lập hiến liên bang ở châu Mỹ, nằm tại Tây Bán cầu, lãnh thổ bao gồm 50 tiểu bang và một đặc khu liên bang. Hoa Kỳ nằm ở giữa Bắc Mỹ, giáp biển Thái Bình Dương ở phía tây, Đại Tây Dương ở phía đông, Canada ở phía bắc và Mexico ở phía nam
Dân số nước Mỹ qua từng năm tăng giảm không đều và tỷ lệ tăng dân số có xu hướng ngày càng giảm, điều này được thể hiện qua 2 biểu đồ bên dưới.
options(scipen=999)
us <- filter(pnd2, country == 'United States')
us %>% ggplot(aes(x = yr, y = pop)) +
geom_col(fill ='pink') +
xlab('Năm') +
ylab('Dân số') +
labs(title = 'Dân số nước Mỹ từ năm 1950 đến năm 2021')
uspi <- vector()
for(i in 1:(l)) {
uspi[i]= (us$pop[i+1]/us$pop[i]-1)}
ggplot(us, aes(x = yr, y = uspi)) +
geom_col(fill ='navy') +
xlab('Năm') +
ylab('Tỉ lệ tăng') +
labs(title = 'Tỉ lệ tăng dân số ở Mỹ từ năm 1950 đến năm 2021')
summary(us$pop)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 148281550 195253172 236329480 241932229 291819332 336997630
Pháp - tên chính thức là Cộng hòa Pháp là một quốc gia có lãnh thổ chính nằm tại Tây Âu cùng một số vùng và lãnh thổ hải ngoại. Phần lãnh thổ Pháp tại châu Âu trải dài từ Địa Trung Hải đến eo biển Manche và biển Bắc, và từ sông Rhine đến Đại Tây Dương
Dân số nước Pháp qua từng năm tăng giảm không đều và tỷ lệ tăng dân số có xu hướng giảm mạnh trong những năm gần đây, điều này được thể hiện qua 2 biểu đồ bên dưới.
options(scipen=999)
fr <- filter(pnd2, country == 'France')
fr %>% ggplot(aes(x = yr, y = pop)) +
geom_col(fill ='pink') +
xlab('Năm') +
ylab('Dân số') +
labs(title = 'Dân số nước Pháp từ năm 1950 đến năm 2021')
frpi <- vector()
for(i in 1:(l)) {
frpi[i]= (fr$pop[i+1]/fr$pop[i]-1)}
ggplot(fr, aes(x = yr, y = frpi)) +
geom_col(fill ='navy') +
xlab('Năm') +
ylab('Tỉ lệ tăng') +
labs(title = 'Tỉ lệ tăng dân số ở Pháp từ năm 1950 đến năm 2021')
summary(fr$pop)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 41842356 49530804 55239872 54535777 59823304 64531450
Nga - tên đầy đủ là Liên bang Nga là một quốc gia Cộng hòa liên bang nằm ở phía Bắc của lục địa Á - Âu, đây là quốc gia có diện tích lớn nhất trên thế giới
Dân số nước Nga qua từng năm tăng giảm không đều và tỷ lệ tăng dân số có xu hướng giảm mạnh trong những năm gần đây, điều này được thể hiện qua 2 biểu đồ bên dưới.
options(scipen=999)
ru <- filter(pnd2, country == 'Russia')
ru %>% ggplot(aes(x = yr, y = pop)) +
geom_col(fill ='pink') +
xlab('Năm') +
ylab('Dân số') +
labs(title = 'Dân số nước Nga từ năm 1950 đến năm 2021')
rupi <- vector()
for(i in 1:(l)) {
rupi[i]= (ru$pop[i+1]/ru$pop[i]-1)}
ggplot(ru, aes(x = yr, y = rupi)) +
geom_col(fill ='navy') +
xlab('Năm') +
ylab('Tỉ lệ tăng') +
labs(title = 'Tỉ lệ tăng dân số ở Nga từ năm 1950 đến năm 2021')
summary(ru$pop)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 102580110 128644714 142991460 135841943 145486940 148897280
Trung Quốc - tên đầy đủ là Cộng hòa Nhân dân Trung Hoa là một quốc gia nằm ở khu vực Đông Á và là một trong hai quốc gia tỷ dân
Dân số Trung Quốc qua từng năm tăng giảm không đều và tỷ lệ tăng dân số có xu hướng ngày càng giảm, điều này được thể hiện qua 2 biểu đồ bên dưới.
options(scipen=999)
cn <- filter(pnd2, country == 'China')
cn %>% ggplot(aes(x = yr, y = pop)) +
geom_col(fill ='pink') +
xlab('Năm') +
ylab('Dân số') +
labs(title = 'Dân số Trung Quốc từ năm 1950 đến năm 2021')
cnpi <- vector()
for(i in 1:(l)) {
cnpi[i]= (cn$pop[i+1]/cn$pop[i]-1)}
ggplot(cn, aes(x = yr, y = cnpi)) +
geom_col(fill ='navy') +
xlab('Năm') +
ylab('Tỉ lệ tăng') +
labs(title = 'Tỉ lệ tăng dân số ở Trung Quốc từ năm 1950 đến năm 2021')
summary(cn$pop)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 543979200 775530575 1069005250 1035531645 1290859175 1425893500
Tính trung bình dân số trong độ tuổi lao động
mean(pnd3$a15to64)
## [1] 198712131
Kết quả thu được cho biết trung bình dân số trong độ tuổi lao động ở các nước là 198712131
Tính tổng số dân trên 100 tuổi
sum(pnd3$o100)
## [1] 3499833
Kết quả thu được cho biết tổng số dân trên 100 tuổi ở các nước là 3499833
Tính số phần trăm trẻ em dưới 15 tuổi
quantile(pnd3$u15, probs = c(.25,.5,.75))
## 25% 50% 75%
## 11812370 30531855 61128706
Kết quả thu được cho biết 25% tổng số trẻ em dưới 15 tuổi là 11812370, 50% tổng số trẻ em dưới 15 tuổi là 30531855, 75% tổng số trẻ em dưới 15 tuổi là 61128706
Tính phương sai của nhóm tuổi dưới 25 tuổi
var(pnd3$u25)
## [1] 31899349758477404
Kết quả thu được cho biết phương sai của nhóm tuổi dưới 25 tuổi là 31899349758477404
Tính trung vị của nhóm tuổi lớn hơn 18 tuổi
median(pnd3$o18)
## [1] 104114503
Kết quả thu được cho biết trung vị của nhóm tuổi lớn hơn 18 tuổi là 104114503
Ta gán bộ dữ liệu với cái tên là nv3, sau đó tiến hành dùng lệnh skim để biết thông tin tổng quan của bộ dữ liệu
library(skimr)
nv3 <- read.csv("C:/Users/HELLO/Documents/R/Top_1000_Highest_Grossing_Movies_Of_All_Time.csv", header = T)
skim(nv3)
| Name | nv3 |
| Number of rows | 1000 |
| Number of columns | 10 |
| _______________________ | |
| Column type frequency: | |
| character | 8 |
| numeric | 2 |
| ________________________ | |
| Group variables | None |
Variable type: character
| skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
|---|---|---|---|---|---|---|---|
| Movie.Title | 0 | 1 | 2 | 83 | 0 | 989 | 0 |
| Year.of.Realease | 0 | 1 | 4 | 5 | 0 | 55 | 0 |
| Genre | 0 | 1 | 5 | 26 | 0 | 153 | 0 |
| Gross | 0 | 1 | 6 | 8 | 0 | 949 | 0 |
| Worldwide.LT.Gross | 0 | 1 | 12 | 14 | 0 | 1000 | 0 |
| Metascore | 0 | 1 | 2 | 6 | 0 | 80 | 0 |
| Votes | 0 | 1 | 3 | 9 | 0 | 1000 | 0 |
| Logline | 0 | 1 | 51 | 336 | 0 | 1000 | 0 |
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|
| Movie.Rating | 0 | 1 | 6.80 | 0.90 | 2.5 | 6.2 | 6.8 | 7.4 | 9.2 | ▁▁▆▇▂ |
| Duration | 0 | 1 | 117.68 | 21.56 | 69.0 | 102.0 | 116.0 | 130.0 | 238.0 | ▃▇▂▁▁ |
Ta chọn 5 bộ phim để phân tích là: - Avatar - Titanic - Jurrasic World - The Lion King - Frozen II
Thêm cột Over.2hr để chia những phim dài trên 2h
nv31 <- filter(nv3,Movie.Title=='Avatar'|Movie.Title=='Titanic'|Movie.Title=='Jurassic World'|Movie.Title=='Black Panther'|Movie.Title=='Frozen II')
nv31$Over.2hr <- ifelse(nv31$Duration > 160,'yes','no')
datatable(nv31)
Chỉ số Rating trung bình
mean(nv31$Movie.Rating,na.rm = T)
## [1] 7.34
Kết quả thu được chỉ số Rating trung bình là 7
Trung vị năm phát hành
median(nv31$Year.of.Realease,na.rm = T)
## [1] "2015"
Kết quả thu được trung vị năm phát hành là 2015
Tổng thời lượng phim
sum(nv31$Duration, na.rm = T)
## [1] 717
Kết quả thu được tổng thời lượng phim là 717
So sánh điểm của các nhà phê bình
nv31 %>% ggplot(aes(x = Movie.Title, y = Metascore)) +
geom_col(fill ='purple') +
xlab('Phim') +
ylab('Điểm phê bình') +
labs(title = 'So sánh điểm của các nhà phê bình')
Qua biểu đồ ta thấy Black Panther được các nhà phê bình đánh giá cao nhất trong khi Jurassic World được đánh giá thấp nhất
So sánh chỉ số Rating
nv31 %>% ggplot(aes(x = Movie.Title, y = Movie.Rating)) +
geom_col(fill ='purple') +
xlab('Phim') +
ylab('Ratings') +
labs(title = 'So sánh chỉ số Rating')
Ta thấy chỉ số Rating được đánh giá khá đều, với sự chênh lệch không quá lớn. Phim có chỉ số Rating lớn nhất là Titanic, phim có chỉ số Rating nhỏ nhất là Frozen II