Rotten Tomatoes là một website dành riêng cho các đánh giá phê bình, thông tin, tin tức của các bộ phim, được biết đến rộng rãi với chức năng của một hệ thống tổng hợp kết quả đánh giá. Thông thường, một bộ phim chỉ cần đạt trên 70% đã được coi là phản hồi tích cực, xứng đáng để khán giả theo dõi. Mặt khác, để một bộ phim hay chương trình truyền hình đạt 100% điểm lại càng là điều khó khăn mà hiếm khi có tác phẩm nào làm được. Danh sách dưới đây là những bộ phim có xếp hạng 100% nhận được sự đồng thuận của các nhà phê bình hoặc đã được đánh giá bởi ít nhất 20 nhà phê bình phim
library(rvest)## Warning: package 'rvest' was built under R version 4.3.1
library(stringr)
url <- 'https://en.wikipedia.org/wiki/List_of_films_with_a_100%25_rating_on_Rotten_Tomatoes'
top_phim <- read_html(url)
tb <- top_phim |> html_element('table') |> html_table()
is.table(tb)## [1] FALSE
str(tb)## tibble [443 × 4] (S3: tbl_df/tbl/data.frame)
## $ Name : chr [1:443] "The Golem: How He Came into the World" "The Kid" "Nanook of the North" "The Last Laugh" ...
## $ Year : int [1:443] 1920 1921 1922 1924 1924 1925 1925 1926 1928 1928 ...
## $ No. of reviews: int [1:443] 32 50 33 32 22 50 51 60 20 33 ...
## $ Ref : chr [1:443] "[11]" "[12]" "[13]" "[14]" ...
Dữ liệu ‘Danh sách phim được đánh giá 100% trên Rotten Tomatoes’ ta lấy được gồm có 443 quan sát và 4 biến:
1.Name: tên phim
2.Year: năm
3.No of reviews: số đánh giá
4.Ref: số trích dẫn gới thiệu
Sử dụng các dòng lệnh trong R chũng ta tạo được hàm có chức năng giải hệ phương trình bậc 2 như sau:
solve_2 = function(a,b,c){
if(a==0){
if(b==0 & c==0){
print("Phuong trinh vo so nghiem")}
if(b==0 & c != 0 ){
print("Phuong trinh vo nghiem")}
else {
print("Phuong trinh co nghiem :")
print(-c/b)}}
else{
delta = b^2-4*a*c
if(delta <0){
print("Phuong trinh vo nghiem")}
else if(delta == 0){
x = -b/(2*a)
print("Phuong trinh co nghiem kep x = ")
print(x)}
else if(delta > 0 ){
x1 = (-b + sqrt(delta))/(2*a)
x2 = (-b - sqrt(delta))/(2*a)
print("Phuong trinh co 2 nghiem phan biet:")
print(x1)
print(x2)}}}solve_2(1,2,3)## [1] "Phuong trinh vo nghiem"
Sử dụng hàm trên để giải phương trình bậc 2 với các hệ số a, b, c lần lượt 1, 2, 3, ta nhận được kết quả là hệ phương trình vô nghiệm
solve_2(1,3,-5)## [1] "Phuong trinh co 2 nghiem phan biet:"
## [1] 1.192582
## [1] -4.192582
Sử dụng hàm trên để giải phương trình bậc 2 với các hệ số a, b, c lần lượt 1, 3, -5, ta nhận được kết quả là hệ phương trình có hai nghiệm phân biệt là 1,192582 và -4,192582
solve_2(1,-4,4)## [1] "Phuong trinh co nghiem kep x = "
## [1] 2
Sử dụng hàm trên để giải phương trình bậc 2 với các hệ số a, b, c lần lượt 1, -4, 4, ta nhận được kết quả là hệ phương trình có nghiệm kép là 2
dothi = function(a, b, d){d |> ggplot(aes(x = {{a}}, y = {{b}})) + geom_smooth(formula = y ~ x, method = 'lm', color = 'green') + geom_point(color = 'red')}Ứng dụng hàm vẽ đồ thị với dữ liệu CigarettesSW của gói AER đã giới thiệu ở nhừng tuần trước Mô tả: Dữ liệu CigarettesSW của gói AER là một dữ liệu bảng về mức tiêu thụ thuốc lá của 48 tiểu bang lục địa Hoa kỳ, trong đó gồm 9 biến.
state: Yếu tố chỉ trạng thái.
year: Yếu tố chỉ năm.
cpi: Chỉ số giá tiêu dùng.
population: dân số.
packs: Số gói bình quân đầu người.
income: Thu nhập cá nhân.
tax: Thuế tiêu thụ đặc biệt của tiểu bang.
price: Giá bán
taxs: Thuế bán hàng.
library(ggplot2)
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(scales)## Warning: package 'scales' was built under R version 4.3.1
library(AER)## Loading required package: car
## Loading required package: carData
##
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
##
## recode
## Loading required package: lmtest
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
## Loading required package: sandwich
## Loading required package: survival
data(CigarettesSW)
### Gán dữ liệu CigarettesSW vào d
d <- CigarettesSW
### Cấu trúc của dataset(CigarettesSW)
str(d)## 'data.frame': 96 obs. of 9 variables:
## $ state : Factor w/ 48 levels "AL","AR","AZ",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ year : Factor w/ 2 levels "1985","1995": 1 1 1 1 1 1 1 1 1 1 ...
## $ cpi : num 1.08 1.08 1.08 1.08 1.08 ...
## $ population: num 3973000 2327000 3184000 26444000 3209000 ...
## $ packs : num 116 129 105 100 113 ...
## $ income : num 4.60e+07 2.62e+07 4.40e+07 4.47e+08 4.95e+07 ...
## $ tax : num 32.5 37 31 26 31 ...
## $ price : num 102.2 101.5 108.6 107.8 94.3 ...
## $ taxs : num 33.3 37 36.2 32.1 31 ...
### Đặt tên cho các biến trong dataset
names(d) <- c('S','YE','C','PO','P','IN','T','PR','TA')
### Hiển thị 7 dòng đầu của dữ liệu d
head(d,7)## S YE C PO P IN T PR TA
## 1 AL 1985 1.076 3973000 116.4863 46014968 32.5 102.18167 33.34834
## 2 AR 1985 1.076 2327000 128.5346 26210736 37.0 101.47500 37.00000
## 3 AZ 1985 1.076 3184000 104.5226 43956936 31.0 108.57875 36.17042
## 4 CA 1985 1.076 26444000 100.3630 447102816 26.0 107.83734 32.10400
## 5 CO 1985 1.076 3209000 112.9635 49466672 31.0 94.26666 31.00000
## 6 CT 1985 1.076 3201000 109.2784 60063368 42.0 128.02499 51.48333
## 7 DE 1985 1.076 618000 143.8511 9927301 30.0 102.49166 30.00000
dothi(d$PR, d$T, d)Sau khi thực hiện câu lệnh đồ thị trên R, ta thấy các điểm phân bố xung quanh một đường thẳng, điều đó có thể cho thấy một mối quan hệ tuyến tính giữa hai biến ‘Giá’ và biến ‘Thế tiêu thụ đặc biệt’, giá bán tăng thuế tiêu thụ đặc biệt cũng tăng theo
dothi(d$PR, d$C, d)Sau khi thực hiện câu lệnh đồ thị trên R, ta thấy các điểm không phân bố xung quanh một đường thẳng, điều đó có thể cho thấy hai biến ‘Giá’ và biến ‘Chỉ số giá tiêu dùng’ không có quan hệ tuyến tính với nhau. Nếu giá tăng thì chỉ số giá tiêu dùng sẽ ko tăng theo
dothi(d$PO, d$PR, d)Sau khi thực hiện câu lệnh đồ thị trên R, ta thấy các điểm phân bố xung quanh một đường thẳng, điều đó có thể cho thấy hai biến ‘Giá’ và biến ’Dâ số’có quan hệ tuyến tính với nhau. Nếu dân số tăng thì giá sẽ tăng theo
dothi(d$PR, d$IN, d)Sau khi thực hiện câu lệnh đồ thị trên R, ta thấy các điểm phân bố xung quanh một đường thẳng, điều đó có thể cho thấy hai biến ‘Giá’ và biến ’Thu nhập’có quan hệ tuyến tính với nhau. Nếu giá tăng thì thu nhập sẽ tăng theo
library(WDI)## Warning: package 'WDI' was built under R version 4.3.1
tmp <- WDIsearch('GDP')
d <- WDI(indicator = 'DP.DOD.DECF.CR.BC.Z1')
d1 <- WDI(country = 'CHL', extra = TRUE, indicator = 'DP.DOD.DECF.CR.BC.Z1')
d <- na.omit(d)Mô tả: Dữ liệu CigarettesSW của gói AER là một dữ liệu bảng về mức tiêu thụ thuốc lá của 48 tiểu bang lục địa Hoa kỳ, trong đó gồm 9 biến.
state: Yếu tố chỉ trạng thái.
year: Yếu tố chỉ năm.
cpi: Chỉ số giá tiêu dùng.
population: dân số.
packs: Số gói bình quân đầu người.
income: Thu nhập cá nhân.
tax: Thuế tiêu thụ đặc biệt của tiểu bang.
price: Giá bán
taxs: Thuế bán hàng.
library(ggplot2)
library(DT)## Warning: package 'DT' was built under R version 4.3.1
library(dplyr)
library(scales)
library(AER)
data(CigarettesSW)
### Gán dữ liệu CigarettesSW vào d
d <- CigarettesSW
### Cấu trúc của dataset(CigarettesSW)
str(d)## 'data.frame': 96 obs. of 9 variables:
## $ state : Factor w/ 48 levels "AL","AR","AZ",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ year : Factor w/ 2 levels "1985","1995": 1 1 1 1 1 1 1 1 1 1 ...
## $ cpi : num 1.08 1.08 1.08 1.08 1.08 ...
## $ population: num 3973000 2327000 3184000 26444000 3209000 ...
## $ packs : num 116 129 105 100 113 ...
## $ income : num 4.60e+07 2.62e+07 4.40e+07 4.47e+08 4.95e+07 ...
## $ tax : num 32.5 37 31 26 31 ...
## $ price : num 102.2 101.5 108.6 107.8 94.3 ...
## $ taxs : num 33.3 37 36.2 32.1 31 ...
### Đặt tên cho các biến trong dataset
names(d) <- c('S','YE','C','PO','P','IN','T','PR','TA')
### Hiển thị 7 dòng đầu của dữ liệu d
head(d,7)## S YE C PO P IN T PR TA
## 1 AL 1985 1.076 3973000 116.4863 46014968 32.5 102.18167 33.34834
## 2 AR 1985 1.076 2327000 128.5346 26210736 37.0 101.47500 37.00000
## 3 AZ 1985 1.076 3184000 104.5226 43956936 31.0 108.57875 36.17042
## 4 CA 1985 1.076 26444000 100.3630 447102816 26.0 107.83734 32.10400
## 5 CO 1985 1.076 3209000 112.9635 49466672 31.0 94.26666 31.00000
## 6 CT 1985 1.076 3201000 109.2784 60063368 42.0 128.02499 51.48333
## 7 DE 1985 1.076 618000 143.8511 9927301 30.0 102.49166 30.00000
### Gán biến 'Giá'(PR) trong data(d) vào vol
vol <- d$PRLấy những giá trị từ 50 đến 90 của biến ‘Giá’, ta sử dụng câu lệnh trong R như sau:
vol15 <- vol[vol >= 50 & vol <= 90]
vol15## [1] 87.00125 84.96799
Lấy những giá trị trong biến ‘Giá’ >50 hoặc biến ‘Thuế tiêu thụ đặc biệt’ <80, ta dùng câu lệnh trong R, sau đó ta có được kết quả là:
vol1 <- d[d$PR < 50 |d$T > 80,]Chia dữ liệu ‘Giá’ thành 4 tổ, ta dùng câu lệnh trên R, sau đó biến ‘Giá’ sẽ được xếp 4 tổ các tổ được xếp từ giá trị bé đến giá trị lớn.
cut(vol,4)## [1] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (124,163]
## [7] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (84.8,124]
## [13] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (84.8,124]
## [19] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (84.8,124]
## [25] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (84.8,124]
## [31] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (84.8,124]
## [37] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (84.8,124]
## [43] (84.8,124] (84.8,124] (124,163] (84.8,124] (84.8,124] (84.8,124]
## [49] (124,163] (163,202] (163,202] (202,241] (163,202] (202,241]
## [55] (163,202] (163,202] (124,163] (163,202] (163,202] (163,202]
## [61] (124,163] (163,202] (124,163] (163,202] (202,241] (163,202]
## [67] (163,202] (202,241] (202,241] (124,163] (163,202] (124,163]
## [73] (124,163] (163,202] (163,202] (163,202] (202,241] (163,202]
## [79] (202,241] (202,241] (163,202] (163,202] (163,202] (163,202]
## [85] (202,241] (124,163] (163,202] (163,202] (163,202] (163,202]
## [91] (163,202] (163,202] (202,241] (163,202] (163,202] (124,163]
## Levels: (84.8,124] (124,163] (163,202] (202,241]
Tạo bảng tần số cho dữ lệu ‘Giá’ được chia thành 4 tổ ở trên, ta dùng câu lệnh trên R, sau đó ta được kết quả là những lần xuất hiện của từng tổ được chia ở trên.
table(cut(vol,4))##
## (84.8,124] (124,163] (163,202] (202,241]
## 46 11 29 10
Bảng giá theo chỉ số tiêu dùng
table(cut(vol,4),d$C)##
## 1.07599997520447 1.5239999294281
## (84.8,124] 46 0
## (124,163] 2 9
## (163,202] 0 29
## (202,241] 0 10
Chia dữ liệu ‘Thu nhập cá nhân’ thành 8 tổ, ta dùng câu lệnh trên R cut(d$IN,8)
cut(d$IN,8)## [1] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [4] (3.89e+08,4.85e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [7] (6.12e+06,1.02e+08] (1.02e+08,1.98e+08] (6.12e+06,1.02e+08]
## [10] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (1.02e+08,1.98e+08]
## [13] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [16] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [19] (6.12e+06,1.02e+08] (1.02e+08,1.98e+08] (6.12e+06,1.02e+08]
## [22] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [25] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [28] (6.12e+06,1.02e+08] (1.02e+08,1.98e+08] (6.12e+06,1.02e+08]
## [31] (6.12e+06,1.02e+08] (2.94e+08,3.89e+08] (1.02e+08,1.98e+08]
## [34] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (1.02e+08,1.98e+08]
## [37] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [40] (6.12e+06,1.02e+08] (1.98e+08,2.94e+08] (6.12e+06,1.02e+08]
## [43] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [46] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [49] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [52] (6.76e+08,7.72e+08] (6.12e+06,1.02e+08] (1.02e+08,1.98e+08]
## [55] (6.12e+06,1.02e+08] (2.94e+08,3.89e+08] (1.02e+08,1.98e+08]
## [58] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (2.94e+08,3.89e+08]
## [61] (1.02e+08,1.98e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [64] (6.12e+06,1.02e+08] (1.02e+08,1.98e+08] (1.02e+08,1.98e+08]
## [67] (6.12e+06,1.02e+08] (1.98e+08,2.94e+08] (1.02e+08,1.98e+08]
## [70] (1.02e+08,1.98e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [73] (1.02e+08,1.98e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [76] (6.12e+06,1.02e+08] (1.98e+08,2.94e+08] (6.12e+06,1.02e+08]
## [79] (6.12e+06,1.02e+08] (4.85e+08,5.8e+08] (1.98e+08,2.94e+08]
## [82] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (1.98e+08,2.94e+08]
## [85] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [88] (1.02e+08,1.98e+08] (3.89e+08,4.85e+08] (6.12e+06,1.02e+08]
## [91] (1.02e+08,1.98e+08] (6.12e+06,1.02e+08] (1.02e+08,1.98e+08]
## [94] (1.02e+08,1.98e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## 8 Levels: (6.12e+06,1.02e+08] (1.02e+08,1.98e+08] ... (6.76e+08,7.72e+08]
Tạo bảng tần số cho dữ lệu ‘Thu nhập cá nhân’ được chia thành 8 tổ ở trên, ta dùng câu lệnh trên R, sau đó ta được kết quả là những lần xuất hiện của từng tổ được chia ở trên
table(cut(d$IN,8))##
## (6.12e+06,1.02e+08] (1.02e+08,1.98e+08] (1.98e+08,2.94e+08] (2.94e+08,3.89e+08]
## 66 18 5 3
## (3.89e+08,4.85e+08] (4.85e+08,5.8e+08] (5.8e+08,6.76e+08] (6.76e+08,7.72e+08]
## 2 1 0 1
Bảng ‘thu nhập cá nhân’ theo chỉ số tiêu dùng
table(cut(d$IN,8),d$C)##
## 1.07599997520447 1.5239999294281
## (6.12e+06,1.02e+08] 39 27
## (1.02e+08,1.98e+08] 6 12
## (1.98e+08,2.94e+08] 1 4
## (2.94e+08,3.89e+08] 1 2
## (3.89e+08,4.85e+08] 1 1
## (4.85e+08,5.8e+08] 0 1
## (5.8e+08,6.76e+08] 0 0
## (6.76e+08,7.72e+08] 0 1
Tách dữ liệu về mức tiêu thụ thuốc lá năm 1995
C1995 <- subset(d,YE =="1995")
head(C1995)## S YE C PO P IN T PR TA
## 49 AL 1995 1.524 4262731 101.08543 83903280 40.50000 158.3713 41.90467
## 50 AR 1995 1.524 2480121 111.04297 45995496 55.50000 175.5425 63.85917
## 51 AZ 1995 1.524 4306908 71.95417 88870496 65.33333 198.6075 74.79082
## 52 CA 1995 1.524 31493524 56.85931 771470144 61.00000 210.5047 74.77133
## 53 CO 1995 1.524 3738061 82.58292 92946544 44.00000 167.3500 44.00000
## 54 CT 1995 1.524 3265293 79.47219 104315120 74.00000 218.2805 86.35550
Tách dữ liệu về mức tiêu thụ thuốc lá năm 1985
C1985 <- subset(d,YE =="1985")
head(C1985)## S YE C PO P IN T PR TA
## 1 AL 1985 1.076 3973000 116.4863 46014968 32.5 102.18167 33.34834
## 2 AR 1985 1.076 2327000 128.5346 26210736 37.0 101.47500 37.00000
## 3 AZ 1985 1.076 3184000 104.5226 43956936 31.0 108.57875 36.17042
## 4 CA 1985 1.076 26444000 100.3630 447102816 26.0 107.83734 32.10400
## 5 CO 1985 1.076 3209000 112.9635 49466672 31.0 94.26666 31.00000
## 6 CT 1985 1.076 3201000 109.2784 60063368 42.0 128.02499 51.48333
Để chỉ trả về các hàng bị trùng lặp trong d
d[duplicated(d)]## data frame with 0 columns and 96 rows
Cho thấy không có hàng nào trong d bị trùng lặp
Trích xuất hàng thứ 4 từ khung dữ liệu d
library(tidyverse)## Warning: package 'purrr' was built under R version 4.3.1
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.0 ✔ readr 2.1.4
## ✔ lubridate 1.9.2 ✔ tibble 3.2.1
## ✔ purrr 1.0.1 ✔ tidyr 1.3.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ readr::col_factor() masks scales::col_factor()
## ✖ purrr::discard() masks scales::discard()
## ✖ dplyr::filter() masks stats::filter()
## ✖ readr::guess_encoding() masks rvest::guess_encoding()
## ✖ dplyr::lag() masks stats::lag()
## ✖ car::recode() masks dplyr::recode()
## ✖ purrr::some() masks car::some()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
d %>% slice(4)## S YE C PO P IN T PR TA
## 4 CA 1985 1.076 26444000 100.363 447102816 26 107.8373 32.104
Trích xuất hàng thứ 2 và hàng thứ 4 từ khung dữ liệu d
d %>% slice(c(2,4))## S YE C PO P IN T PR TA
## 2 AR 1985 1.076 2327000 128.5346 26210736 37 101.4750 37.000
## 4 CA 1985 1.076 26444000 100.3630 447102816 26 107.8373 32.104
Trích xuất 2 hàng lớn nhất dựa trên các dữ liệu của cột ‘Giá’.
d %>% slice_max(PR, n = 2)## S YE C PO P IN T PR TA
## 68 MI 1995 1.524 9659871 81.38825 231594240 99.0 240.8497 112.63300
## 93 WA 1995 1.524 5431024 65.53092 129680832 80.5 239.1093 96.14267
Trích xuất 2 hàng nhỏ nhất dựa trên các dữ liệu của cột ‘Giá’
d %>% slice_min(PR, n = 2)## S YE C PO P IN T PR TA
## 25 NC 1985 1.076 6255000 155.2838 79104656 18 84.96799 21.26800
## 15 KY 1985 1.076 3695000 186.0352 42703144 19 87.00125 23.14292
Chọn hàng có ‘Giá’ lớn nhất theo mỗi cột ‘Năm’, không bao gồm các ràng buộc
d %>% group_by(YE) %>% slice_max(PR, n = 1, with_ties = F)## # A tibble: 2 × 9
## # Groups: YE [2]
## S YE C PO P IN T PR TA
## <fct> <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 WA 1985 1.08 4401000 96.2 64846548 39 129. 47.5
## 2 MI 1995 1.52 9659871 81.4 231594240 99 241. 113.
Chọn hàng có ‘Giá’ nhỏ nhất theo mỗi ‘Năm’, không bao gồm các ràng buộc
d %>% group_by(YE) %>% slice_min(PR, n = 1, with_ties = F)## # A tibble: 2 × 9
## # Groups: YE [2]
## S YE C PO P IN T PR TA
## <fct> <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 NC 1985 1.08 6255000 155. 79104656 18 85.0 21.3
## 2 KY 1995 1.52 3855248 173. 74079712 27 146. 35.3
Khung dữ liệu d được đưa vào pivot_wider()hàm để định hình lại dữ liệu. Đối names_from chỉ định cột YE (năm) có giá trị duy nhất sẽ trở thành tên cột trong khung dữ liệu kết quả. Đối values_from cho biết cột PR (giágiá) mà từ đó các giá trị tương ứng sẽ được đặt trong các cột mới.
n <- d |> pivot_wider(names_from = YE,values_from = PR)
n## # A tibble: 96 × 9
## S C PO P IN T TA `1985` `1995`
## <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 AL 1.08 3973000 116. 46014968 32.5 33.3 102. NA
## 2 AR 1.08 2327000 129. 26210736 37 37 101. NA
## 3 AZ 1.08 3184000 105. 43956936 31 36.2 109. NA
## 4 CA 1.08 26444000 100. 447102816 26 32.1 108. NA
## 5 CO 1.08 3209000 113. 49466672 31 31 94.3 NA
## 6 CT 1.08 3201000 109. 60063368 42 51.5 128. NA
## 7 DE 1.08 618000 144. 9927301 30 30 102. NA
## 8 FL 1.08 11352000 122. 166919248 37 42.5 115. NA
## 9 GA 1.08 5963000 127. 78364336 28 28.8 97.0 NA
## 10 IA 1.08 2830000 114. 37902896 34 37.9 102. NA
## # ℹ 86 more rows
có 96 quan sát có khoảng 48/96 người được quan sát năm 1985 hoặc được quan sát năm 1995(2 mẫu quan sát năm 1985 và 1995 bằng nhau); nếu chúng ta tiến hành chọn mẫu 10 lần, mỗi lần chọn 10 người trong quần thể đó một cách ngẫu nhiên, sự phân phối đó sẽ có xác suất là:
table(d$YE)##
## 1985 1995
## 48 48
a <- rbinom(10, 10, 0.5)
table(a)## a
## 4 5 6 8
## 1 5 2 2
Đồ thị thể hện phân phối nhị thức
hist(a, main="Phân phối nhị thức của biến năm 1985 và 1995") Để tạo 1 biến mới trong tập dữ liệu CigarettesSw ta sử dụng câu lệnh mutate() trong R như sau:
d <- d |> mutate(yearnew = case_when(d$YE == '1985' ~ 1, d$YE == '1995' ~ 2))
datatable(d)Sau khi thực hiện câu lệnh trên R, trên bảng xuất hiện thêm một cột mới tên là yearnew thực hiện chuyển đổi các dữ liệu của year, năm 1985 tương đương với 1, năm 1995 tương đương với 2
Để tạo 1 biến mới trong tập dữ liệu CigarettesSw ta sử dụng câu lệnh mutate() trong R như sau:
d <- d |> mutate(pricenew = case_when(d$PR < 134 ~ "nhỏ",d$PR >= 134 & d$PR < 192 ~ "vừa",d$PR >= 192 ~ "lớn"))
datatable(d)Sau khi thực hiện câu lệnh trên R, trên bảng xuất hiện thêm một cột mới tên là price_new thực hiện chuyển đổi các dữ liệu của cột price, nếu price bé hơn 134 tương đương với ‘nhỏ’, nếu price lớn hơn hoặc bằng 134 và bé hơn 192 tương đương với ‘vừa’, nếu price lớn hơn hoặc bằng 192 tương đương với ‘lớn’
#### Đồ thị Scatter dựa vào 2 biến Price và Tax
data(CigarettesSW)
### Gán dữ liệu CigarettesSW vào d
d <- CigarettesSW
### Cấu trúc của dataset(CigarettesSW)
str(d)## 'data.frame': 96 obs. of 9 variables:
## $ state : Factor w/ 48 levels "AL","AR","AZ",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ year : Factor w/ 2 levels "1985","1995": 1 1 1 1 1 1 1 1 1 1 ...
## $ cpi : num 1.08 1.08 1.08 1.08 1.08 ...
## $ population: num 3973000 2327000 3184000 26444000 3209000 ...
## $ packs : num 116 129 105 100 113 ...
## $ income : num 4.60e+07 2.62e+07 4.40e+07 4.47e+08 4.95e+07 ...
## $ tax : num 32.5 37 31 26 31 ...
## $ price : num 102.2 101.5 108.6 107.8 94.3 ...
## $ taxs : num 33.3 37 36.2 32.1 31 ...
Sử dụng datatable() để hiển thị tập dữ liệu d dưới dạng bảng HTML tương tác.
datatable(CigarettesSW)d |> ggplot(map = aes(x = price, y = tax)) + geom_point(color = 'red') + xlab('Giá') + ylab('Thế tiêu thụ đặc biệt')Sau khi thực hện câu lệnh trên R, sẽ tạo ra một biểu đồ phân tán với các điểm được tô màu đỏ, với trục x được gắn nhãn là ‘Giá’ và trục y được gắn nhãn là ‘Thế tiêu thụ đặc biệt’ dựa trên ánh xạ thẩm mỹ được cung cấp. Biểu đồ phân tán cho thấy mối quan hệ tương quan giữa hai biến số ‘giá’ và ‘Thuế tiêu thụ đặc bệt’, giá bán tăng thuế tiêu thụ đặc biệt cũng tăng theo
d |> ggplot(aes(x = price, y = tax)) + geom_smooth(formula = y ~ x, method = 'lm', color = 'green') + geom_point(color = 'red') + labs(title = 'Đồ thị hàm xu hướng', x = 'Giá', y = 'Thế tiêu thụ đặc biệt')Sau kh thực hiện câu lệnh trên R, ta thấy các điểm phân bố xung quanh một đường thẳng, điều đó có thể cho thấy một mối quan hệ tuyến tính giữa hai biến ‘Giá’ và biến ‘Thế tiêu thụ đặc biệt’, giá bán tăng thuế tiêu thụ đặc biệt cũng tăng theo
Chúng ta cũng có thể nối các điểm trong đồ thị dạng scatter của 2 biến price và tax lại với nhau bằng những đoạn thẳng như sau:
d |> ggplot(aes(x = price, y = tax)) + geom_point(color = 'red') + geom_line(color = 'black') + xlab('Giá') + ylab('Thế tiêu thụ đặc biệt')Bằng cách kết hợp các điểm và đường trong biểu đồ, sau khi sử dụng câu lệnh trên R này cung cấp thông tin trực quan về mối quan hệ giữa các biến “giá” và “thuế tiêu thụ đặc biệt”. Biểu đồ phân tán với các điểm màu đỏ hiển thị các điểm dữ liệu riêng lẻ và đường màu đen thêm xu hướng hoặc đường phù hợp để có khả năng minh họa một mẫu hoặc mối quan hệ giữa các biến, giá bán tăng thuế tiêu thụ đặc biệt cũng tăng theo
Tuy nhiên chúng ta còn có thể có cái nhìn sâu hơn về tương quan giữa 2 biến này theo năm như sau:
d |> ggplot(aes(x = price, y = tax, color = year)) +
geom_point(na.rm = T) +
xlab('Giá') +
ylab('Thuế tiêu thụ đặc biệt')Sau khi thực hiện câu lệnh trong R, ta thấy được năm 1985 chủ yếu là giá bán nhỏ, năm 1995 là năm giá bán vừa và lớn
Chúng ta cũng có thể thêm hàm hồi quy (tuyến tính) vào đồ thị scatter như ví dụ bên trên, tuy nhiên chúng ta còn có thể thêm được nhiều hàm hồi quy (tuyến tính) tương ứng với năm như sau:
d |> ggplot(aes(x = price, y = tax)) +
geom_point(aes(color = year), na.rm = T) +
geom_smooth(aes(color = year), formula = y ~ x, method = 'lm', na.rm = T) +
xlab('Giá') +
ylab('Thuế tiêu thụ đặc biệt')chúng ta có thể vẽ thành nhiều đồ thị tương ứng với từng năm như sau:
d |> ggplot(aes(x = price, y = tax)) +
geom_point(aes(color = year), na.rm = T) +
geom_smooth(aes(color = year), formula = y ~ x, method = 'lm', na.rm = T) + facet_grid(. ~ year) +
xlab('Giá') +
ylab('Thuế tiêu thụ đặc biệt')Sau khi sử dụng câu lệnh trên R ta vẽ được 2 hàm tuyến tính theo năm 1985 và năm 1995. Trong đồ thị ta thấy các điểm nằm xung đường tuyến tính cho thấy biến giá và biến thuế năm 1985 và năm 1995 có mối quan hệ tuyến tính với nha
chúng ta vẽ biểu đồ cột cho biến Year ta sử dụng câu lệnh trong R như sau:
d |> ggplot(aes(x = year )) + geom_bar( fill = 'pink')sau khi sử lệnh trong R ta có được kết quả là mức tiêu thụ thuốc lá trung bình của năm 1985 và nă 1995 là bằng nhau
d |> group_by(year) |>
summarise(n = n()) |>
mutate(pG = percent(n/sum(n), accuracy = ,01)) |>
ggplot(aes(x = year, y = pG)) +
geom_col(fill = 'pink') +
theme_classic() +
labs(x = 'Năm', y = 'Tỷ lệ %')Sau khi thực hiện câu lệnh trên R ta có được kết quả là mức tiêu thụ thuốc lá trung bình của năm 1985 và nă 1995 là bằng nhau à 50%
Mô tả: Dữ liệu CigarettesSW của gói AER là một dữ liệu bảng về mức tiêu thụ thuốc lá của 48 tiểu bang lục địa Hoa kỳ, trong đó gồm 9 biến.
state: Yếu tố chỉ trạng thái.
year: Yếu tố chỉ năm.
cpi: Chỉ số giá tiêu dùng.
population: dân số.
packs: Số gói bình quân đầu người.
income: Thu nhập cá nhân.
tax: Thuế tiêu thụ đặc biệt trung bình của tiểu bang, liên bang và địa phương cho năm tài chính.
price: Giá trong năm tài chính, bao gồm thuế bán hàng.
taxs: Thuế bán hàng.
library(ggplot2)
library(DT)
library(dplyr)
library(scales)
library(AER)
data(CigarettesSW)
### Gán dữ liệu CigarettesSW vào d
d <- CigarettesSW
### Cấu trúc của dataset(CigarettesSW)
str(d)## 'data.frame': 96 obs. of 9 variables:
## $ state : Factor w/ 48 levels "AL","AR","AZ",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ year : Factor w/ 2 levels "1985","1995": 1 1 1 1 1 1 1 1 1 1 ...
## $ cpi : num 1.08 1.08 1.08 1.08 1.08 ...
## $ population: num 3973000 2327000 3184000 26444000 3209000 ...
## $ packs : num 116 129 105 100 113 ...
## $ income : num 4.60e+07 2.62e+07 4.40e+07 4.47e+08 4.95e+07 ...
## $ tax : num 32.5 37 31 26 31 ...
## $ price : num 102.2 101.5 108.6 107.8 94.3 ...
## $ taxs : num 33.3 37 36.2 32.1 31 ...
Sử dụng datatable() để hiển thị tập dữ liệu d dưới dạng bảng HTML tương tác.
datatable(CigarettesSW)Để tạo 1 biến mới trong tập dữ liệu CigarettesSw ta sử dụng câu lệnh mutate() trong R như sau:
d <- d |> mutate(yearnew = case_when(year == '1985' ~ 1, year == '1995' ~ 2))
datatable(d)Sau khi thực hiện câu lệnh trên R, trên bảng xuất hiện thêm một cột mới tên là yearnew thực hiện chuyển đổi các dữ liệu của year, năm 1985 tương đương với 1, năm 1995 tương đương với 2
Để tạo 1 biến mới trong tập dữ liệu CigarettesSw ta sử dụng câu lệnh mutate() trong R như sau:
d <- d |> mutate(pricenew = case_when(price < 134 ~ "nhỏ",price >= 134 & price < 192 ~ "vừa",price >= 192 ~ "lớn"))
datatable(d)Sau khi thực hiện câu lệnh trên R, trên bảng xuất hiện thêm một cột mới tên là price_new thực hiện chuyển đổi các dữ liệu của cột price, nếu price bé hơn 134 tương đương với ‘nhỏ’, nếu price lớn hơn hoặc bằng 134 và bé hơn 192 tương đương với ‘vừa’, nếu price lớn hơn hoặc bằng 192 tương đương với ‘lớn’
d |> ggplot(map = aes(x = price, y = tax)) + geom_point(color = 'red') + xlab('Giá') + ylab('Thế tiêu thụ đặc biệt')Sau khi thực hện câu lệnh trên R, sẽ tạo ra một biểu đồ phân tán với các điểm được tô màu đỏ, với trục x được gắn nhãn là ‘Giá’ và trục y được gắn nhãn là ‘Thế tiêu thụ đặc biệt’ dựa trên ánh xạ thẩm mỹ được cung cấp. Biểu đồ phân tán cho thấy mối quan hệ tương quan giữa hai biến số ‘giá’ và ‘Thuế tiêu thụ đặc bệt’, giá bán tăng thuế tiêu thụ đặc biệt cũng tăng theo
d |> ggplot(aes(x = price, y = tax)) + geom_smooth(formula = y ~ x, method = 'lm', color = 'green') + geom_point(color = 'red') + labs(title = 'Đồ thị hàm xu hướng', x = 'Giá', y = 'Thế tiêu thụ đặc biệt')Sau kh thực hiện câu lệnh trên R, ta thấy các điểm phân bố xung quanh một đường thẳng, điều đó có thể cho thấy một mối quan hệ tuyến tính giữa hai biến ‘Giá’ và biến ‘Thế tiêu thụ đặc biệt’, giá bán tăng thuế tiêu thụ đặc biệt cũng tăng theo
Chúng ta cũng có thể nối các điểm trong đồ thị dạng scatter của 2 biến price và tax lại với nhau bằng những đoạn thẳng như sau:
d |> ggplot(aes(x = price, y = tax)) + geom_point(color = 'red') + geom_line(color = 'black') + xlab('Giá') + ylab('Thế tiêu thụ đặc biệt')Bằng cách kết hợp các điểm và đường trong biểu đồ, sau khi sử dụng câu lệnh trên R này cung cấp thông tin trực quan về mối quan hệ giữa các biến “giá” và “thuế tiêu thụ đặc biệt”. Biểu đồ phân tán với các điểm màu đỏ hiển thị các điểm dữ liệu riêng lẻ và đường màu đen thêm xu hướng hoặc đường phù hợp để có khả năng minh họa một mẫu hoặc mối quan hệ giữa các biến, giá bán tăng thuế tiêu thụ đặc biệt cũng tăng theo
Tuy nhiên chúng ta còn có thể có cái nhìn sâu hơn về tương quan giữa 2 biến này theo năm như sau:
d |> ggplot(aes(x = price, y = tax, color = year)) +
geom_point(na.rm = T) +
xlab('Giá') +
ylab('Thuế tiêu thụ đặc biệt')Sau khi thực hiện câu lệnh trong R, ta thấy được năm 1985 chủ yếu là giá bán nhỏ, năm 1995 là năm giá bán vừa và lớn
Chúng ta cũng có thể thêm hàm hồi quy (tuyến tính) vào đồ thị scatter như ví dụ bên trên, tuy nhiên chúng ta còn có thể thêm được nhiều hàm hồi quy (tuyến tính) tương ứng với năm như sau:
d |> ggplot(aes(x = price, y = tax)) +
geom_point(aes(color = year), na.rm = T) +
geom_smooth(aes(color = year), formula = y ~ x, method = 'lm', na.rm = T) +
xlab('Giá') +
ylab('Thuế tiêu thụ đặc biệt')chúng ta có thể vẽ thành nhiều đồ thị tương ứng với từng năm như sau:
d |> ggplot(aes(x = price, y = tax)) +
geom_point(aes(color = year), na.rm = T) +
geom_smooth(aes(color = year), formula = y ~ x, method = 'lm', na.rm = T) + facet_grid(. ~ year) +
xlab('Giá') +
ylab('Thuế tiêu thụ đặc biệt')Sau khi sử dụng câu lệnh trên R ta vẽ được 2 hàm tuyến tính theo năm 1985 và năm 1995. Trong đồ thị ta thấy các điểm nằm xung đường tuyến tính cho thấy biến giá và biến thuế năm 1985 và năm 1995 có mối quan hệ tuyến tính với nha
chúng ta vẽ biểu đồ cột cho biến Year ta sử dụng câu lệnh trong R như sau:
d |> ggplot(aes(x = year )) + geom_bar( fill = 'pink')sau khi sử lệnh trong R ta có được kết quả là mức tiêu thụ thuốc lá trung bình của năm 1985 và nă 1995 là bằng nhau
d |> group_by(year) |>
summarise(n = n()) |>
mutate(pG = percent(n/sum(n), accuracy = ,01)) |>
ggplot(aes(x = year, y = pG)) +
geom_col(fill = 'pink') +
theme_classic() +
labs(x = 'Năm', y = 'Tỷ lệ %')Sau khi thực hiện câu lệnh trên R ta có được kết quả là mức tiêu thụ thuốc lá trung bình của năm 1985 và nă 1995 là bằng nhau à 50%
d |> count(pricenew) |>
mutate(pC = percent(n/sum(n),accuracy = 0.01)) |>
ggplot(aes(x = pricenew, y = n)) +
geom_col(fill = 'blue') +
geom_text(aes(label = pC),color = 'red', vjust = 2, size = 3) +
ylab('Tỷ lệ') +
xlab('Giá bán')Sau khi thực hiện câu lệnh trên R ta có được kết quả là biểu đồ cột của biến pricenew, ta có 3 cột cột có giá lớn hơn hoặc bằng 134 và bé hơn 192 chiếm tỷ lệ cao nhất 50%, cột có giá bé hơn 134 chiếm tỷ lệ thấp nhất 16,67%, còn cột có giá lớn hơn hoặc bằng 192 chiếm tỷ lệ 33,33%
d |> ggplot(aes(x = pricenew, y = after_stat(count))) +
geom_bar(fill = 'blue') +
geom_text(aes(label = scales::percent(after_stat(count/sum(count)))), stat = 'count', color = 'red', vjust = - .5) +
facet_grid(. ~ year) +
labs(x = 'Năm', y = 'Giá')Sau khi thực hiện câu lệnh trên R ta có kết quả biểu đồ của biến pricenew theo từng năm. Ta thấy năm 1985 chỉ có giá bán là bé hơn 134 tương đương với giá nhỏ chiếm 50%, năm 1995 có 2 cột giá là giá lớn hơn hoặc bằng 192 tương đơn với giá lớn chiếm 17% và giá từ 134 đến 192 tương đương với giá vừa chiếm 33%
Mô tả: Dữ liệu CigarettesSW của gói AER là một dữ liệu bảng về mức tiêu thụ thuốc lá của 48 tiểu bang lục địa Hoa kỳ, trong đó gồm 9 biến.
state: Yếu tố chỉ trạng thái.
year: Yếu tố chỉ năm.
cpi: Chỉ số giá tiêu dùng.
population: dân số.
packs: Số gói bình quân đầu người.
income: Thu nhập cá nhân.
tax: Thuế tiêu thụ đặc biệt trung bình của tiểu bang, liên bang và địa phương cho năm tài chính.
price: Giá trong năm tài chính, bao gồm thuế bán hàng.
taxs: Thuế bán hàng.
library(AER)
data(CigarettesSW)### Gán dữ liệu CigarettesSW vào d
d <- CigarettesSW
### Cấu trúc của dataset(CigarettesSW)
str(d)## 'data.frame': 96 obs. of 9 variables:
## $ state : Factor w/ 48 levels "AL","AR","AZ",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ year : Factor w/ 2 levels "1985","1995": 1 1 1 1 1 1 1 1 1 1 ...
## $ cpi : num 1.08 1.08 1.08 1.08 1.08 ...
## $ population: num 3973000 2327000 3184000 26444000 3209000 ...
## $ packs : num 116 129 105 100 113 ...
## $ income : num 4.60e+07 2.62e+07 4.40e+07 4.47e+08 4.95e+07 ...
## $ tax : num 32.5 37 31 26 31 ...
## $ price : num 102.2 101.5 108.6 107.8 94.3 ...
## $ taxs : num 33.3 37 36.2 32.1 31 ...
### Đặt tên cho các biến trong dataset
names(d) <- c('S','YE','C','PO','PA','IN','T','PR','TA')Tách dữ liệu về mức tiêu thụ thuốc lá năm 1995
C1995 <- subset(d,YE =="1995")
head(C1995)## S YE C PO PA IN T PR TA
## 49 AL 1995 1.524 4262731 101.08543 83903280 40.50000 158.3713 41.90467
## 50 AR 1995 1.524 2480121 111.04297 45995496 55.50000 175.5425 63.85917
## 51 AZ 1995 1.524 4306908 71.95417 88870496 65.33333 198.6075 74.79082
## 52 CA 1995 1.524 31493524 56.85931 771470144 61.00000 210.5047 74.77133
## 53 CO 1995 1.524 3738061 82.58292 92946544 44.00000 167.3500 44.00000
## 54 CT 1995 1.524 3265293 79.47219 104315120 74.00000 218.2805 86.35550
Tách dữ liệu về mức tiêu thụ thuốc lá năm 1985
C1985 <- subset(d,YE =="1985")
head(C1985)## S YE C PO PA IN T PR TA
## 1 AL 1985 1.076 3973000 116.4863 46014968 32.5 102.18167 33.34834
## 2 AR 1985 1.076 2327000 128.5346 26210736 37.0 101.47500 37.00000
## 3 AZ 1985 1.076 3184000 104.5226 43956936 31.0 108.57875 36.17042
## 4 CA 1985 1.076 26444000 100.3630 447102816 26.0 107.83734 32.10400
## 5 CO 1985 1.076 3209000 112.9635 49466672 31.0 94.26666 31.00000
## 6 CT 1985 1.076 3201000 109.2784 60063368 42.0 128.02499 51.48333
Để chỉ trả về các hàng bị trùng lặp trong d
d[duplicated(d)]## data frame with 0 columns and 96 rows
Cho thấy không có hàng nào trong d bị trùng lặp
Trích xuất hàng thứ 4 từ khung dữ liệu d
library(tidyverse)
d %>% slice(4)## S YE C PO PA IN T PR TA
## 4 CA 1985 1.076 26444000 100.363 447102816 26 107.8373 32.104
Trích xuất hàng thứ 2 và hàng thứ 4 từ khung dữ liệu d
d %>% slice(c(2,4))## S YE C PO PA IN T PR TA
## 2 AR 1985 1.076 2327000 128.5346 26210736 37 101.4750 37.000
## 4 CA 1985 1.076 26444000 100.3630 447102816 26 107.8373 32.104
Trích xuất 2 hàng lớn nhất dựa trên các dữ liệu của cột ‘Giá’.
d %>% slice_max(PR, n = 2)## S YE C PO PA IN T PR TA
## 68 MI 1995 1.524 9659871 81.38825 231594240 99.0 240.8497 112.63300
## 93 WA 1995 1.524 5431024 65.53092 129680832 80.5 239.1093 96.14267
Trích xuất 2 hàng nhỏ nhất dựa trên các dữ liệu của cột ‘Giá’
d %>% slice_min(PR, n = 2)## S YE C PO PA IN T PR TA
## 25 NC 1985 1.076 6255000 155.2838 79104656 18 84.96799 21.26800
## 15 KY 1985 1.076 3695000 186.0352 42703144 19 87.00125 23.14292
Chọn hàng có ‘Giá’ lớn nhất theo mỗi cột ‘Năm’, không bao gồm các ràng buộc
d %>% group_by(YE) %>% slice_max(PR, n = 1, with_ties = F)## # A tibble: 2 × 9
## # Groups: YE [2]
## S YE C PO PA IN T PR TA
## <fct> <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 WA 1985 1.08 4401000 96.2 64846548 39 129. 47.5
## 2 MI 1995 1.52 9659871 81.4 231594240 99 241. 113.
Chọn hàng có ‘Giá’ nhỏ nhất theo mỗi ‘Năm’, không bao gồm các ràng buộc
d %>% group_by(YE) %>% slice_min(PR, n = 1, with_ties = F)## # A tibble: 2 × 9
## # Groups: YE [2]
## S YE C PO PA IN T PR TA
## <fct> <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 NC 1985 1.08 6255000 155. 79104656 18 85.0 21.3
## 2 KY 1995 1.52 3855248 173. 74079712 27 146. 35.3
Khung dữ liệu d được đưa vào pivot_wider()hàm để định hình lại dữ liệu. Đối names_from chỉ định cột YE (năm) có giá trị duy nhất sẽ trở thành tên cột trong khung dữ liệu kết quả. Đối values_from cho biết cột PR (giágiá) mà từ đó các giá trị tương ứng sẽ được đặt trong các cột mới.
n <- d |> pivot_wider(names_from = YE,values_from = PR)
n## # A tibble: 96 × 9
## S C PO PA IN T TA `1985` `1995`
## <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 AL 1.08 3973000 116. 46014968 32.5 33.3 102. NA
## 2 AR 1.08 2327000 129. 26210736 37 37 101. NA
## 3 AZ 1.08 3184000 105. 43956936 31 36.2 109. NA
## 4 CA 1.08 26444000 100. 447102816 26 32.1 108. NA
## 5 CO 1.08 3209000 113. 49466672 31 31 94.3 NA
## 6 CT 1.08 3201000 109. 60063368 42 51.5 128. NA
## 7 DE 1.08 618000 144. 9927301 30 30 102. NA
## 8 FL 1.08 11352000 122. 166919248 37 42.5 115. NA
## 9 GA 1.08 5963000 127. 78364336 28 28.8 97.0 NA
## 10 IA 1.08 2830000 114. 37902896 34 37.9 102. NA
## # ℹ 86 more rows
có 96 quan sát có khoảng 48/96 người được quan sát năm 1985 hoặc được quan sát năm 1995(2 mẫu quan sát năm 1985 và 1995 bằng nhau); nếu chúng ta tiến hành chọn mẫu 10 lần, mỗi lần chọn 10 người trong quần thể đó một cách ngẫu nhiên, sự phân phối đó sẽ có xác suất là:
table(d$YE)##
## 1985 1995
## 48 48
a <- rbinom(10, 10, 0.5)
table(a)## a
## 4 5 6 7
## 4 3 2 1
Đồ thị thể hện phân phối nhị thức
hist(a, main="Phân phối nhị thức của biến năm 1985 và 1995") d$slcoded <- cut(d$PR, breaks = c(84.8, 134, 192, 241),labels = c('nhỏ','vừa','lớn'))
d$slcoded## [1] nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ
## [20] nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ
## [39] nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ vừa vừa lớn lớn vừa lớn vừa vừa vừa
## [58] vừa vừa lớn vừa vừa vừa vừa lớn vừa lớn lớn lớn vừa vừa vừa vừa lớn vừa vừa
## [77] lớn vừa lớn lớn vừa vừa vừa vừa lớn vừa vừa vừa lớn vừa vừa vừa lớn lớn vừa
## [96] vừa
## Levels: nhỏ vừa lớn
### Tạo bảng tần số cho dữ lệu 'Giá' được chia thành tổ không đều ở trên, ta dùng câu lệnh trên R, sau đó ta được kết quả là những lần xuất hiện của từng tổ 'nhỏ','vừa,'lớn'
table(d$slcoded)##
## nhỏ vừa lớn
## 48 32 16
barplot(table(d$slcoded))Mô tả: Dữ liệu CigarettesSW của gói AER là một dữ liệu bảng về mức tiêu thụ thuốc lá của 48 tiểu bang lục địa Hoa kỳ, trong đó gồm 9 biến.
state: Yếu tố chỉ trạng thái.
year: Yếu tố chỉ năm.
cpi: Chỉ số giá tiêu dùng.
population: dân số.
packs: Số gói bình quân đầu người.
income: Thu nhập cá nhân.
tax: Thuế tiêu thụ đặc biệt trung bình của tiểu bang, liên bang và địa phương cho năm tài chính.
price: Giá trong năm tài chính, bao gồm thuế bán hàng.
taxs: Thuế bán hàng.
library(AER)
data(CigarettesSW)
### Gán dữ liệu CigarettesSW vào d
d <- CigarettesSW### Quan tâm đến năm 1985 để lọc dữ liệu năm 1985 ta dùng lệnh trên R, sau đó ta có kết quả:
c1985 <- d[d$year == '1985',]
c1985## state year cpi population packs income tax price taxs
## 1 AL 1985 1.076 3973000 116.48628 46014968 32.50000 102.18167 33.34834
## 2 AR 1985 1.076 2327000 128.53459 26210736 37.00000 101.47500 37.00000
## 3 AZ 1985 1.076 3184000 104.52261 43956936 31.00000 108.57875 36.17042
## 4 CA 1985 1.076 26444000 100.36304 447102816 26.00000 107.83734 32.10400
## 5 CO 1985 1.076 3209000 112.96354 49466672 31.00000 94.26666 31.00000
## 6 CT 1985 1.076 3201000 109.27835 60063368 42.00000 128.02499 51.48333
## 7 DE 1985 1.076 618000 143.85114 9927301 30.00000 102.49166 30.00000
## 8 FL 1985 1.076 11352000 122.18112 166919248 37.00000 115.29000 42.49000
## 9 GA 1985 1.076 5963000 127.23462 78364336 28.00000 97.02517 28.84183
## 10 IA 1985 1.076 2830000 113.74558 37902896 34.00000 101.84200 37.91700
## 11 ID 1985 1.076 994000 103.01811 11577261 25.10000 102.89933 29.05767
## 12 IL 1985 1.076 11401000 123.20848 176786352 28.00001 104.44025 28.91526
## 13 IN 1985 1.076 5460000 137.63737 71751616 26.50000 96.18000 31.08000
## 14 KS 1985 1.076 2428000 116.68040 34784360 32.00000 98.92291 34.88125
## 15 KY 1985 1.076 3695000 186.03519 42703144 19.00000 87.00125 23.14292
## 16 LA 1985 1.076 4409000 127.55727 53431900 32.00000 108.39400 36.16900
## 17 MA 1985 1.076 5881000 115.67760 98328688 42.00000 112.20834 42.00000
## 18 MD 1985 1.076 4414000 120.97871 74851664 29.00000 91.96667 29.00000
## 19 ME 1985 1.076 1163000 128.11694 14575292 36.00000 107.04750 41.09750
## 20 MI 1985 1.076 9077000 128.00485 133728040 37.00000 104.91417 37.83083
## 21 MN 1985 1.076 4185000 112.90323 63152360 34.00000 113.64967 40.43300
## 22 MO 1985 1.076 5001000 130.37393 69341920 29.00000 99.33817 29.85484
## 23 MS 1985 1.076 2588000 117.04018 25678534 27.58333 105.29333 33.54333
## 24 MT 1985 1.076 822000 104.25790 9785230 32.00000 99.29166 32.00000
## 25 NC 1985 1.076 6255000 155.28377 79104656 18.00000 84.96799 21.26800
## 26 ND 1985 1.076 677000 105.46529 8672948 34.00000 106.80800 38.10800
## 27 NE 1985 1.076 1585000 107.38171 21778072 34.00000 104.60667 38.02333
## 28 NH 1985 1.076 997000 197.99399 15767469 33.00000 95.50000 33.00000
## 29 NJ 1985 1.076 7566000 116.52128 133549208 41.00000 110.41666 41.00000
## 30 NM 1985 1.076 1439000 88.74218 17258916 28.00000 102.77800 31.95300
## 31 NV 1985 1.076 951000 141.95584 14581495 31.00000 114.18850 37.46350
## 32 NY 1985 1.076 17794000 116.66292 297728512 37.00000 109.99783 37.88117
## 33 OH 1985 1.076 10736000 127.59874 153455776 30.00000 100.42374 34.78208
## 34 OK 1985 1.076 3272000 127.13937 43395580 34.00000 101.46808 34.82642
## 35 OR 1985 1.076 2673000 119.45380 36205164 35.00000 97.03333 35.00000
## 36 PA 1985 1.076 11772000 117.70303 170033840 34.00000 109.07401 40.17400
## 37 RI 1985 1.076 967000 132.78178 14229156 39.00000 100.94167 39.00000
## 38 SC 1985 1.076 3304000 127.20944 38536176 23.00000 90.64125 27.31625
## 39 SD 1985 1.076 698000 106.59026 8340000 31.00000 97.08334 31.00000
## 40 TN 1985 1.076 4716000 129.83459 57749668 29.00000 101.94550 34.77050
## 41 TX 1985 1.076 16275000 115.10293 231003152 35.25000 107.38000 39.38000
## 42 UT 1985 1.076 1643000 68.04626 19462380 28.00000 110.19584 34.23750
## 43 VA 1985 1.076 5716000 134.00980 87361632 18.50000 91.61533 22.02367
## 44 VT 1985 1.076 530000 145.28302 6887097 33.00000 100.98334 33.00000
## 45 WA 1985 1.076 4401000 96.22813 64846548 39.00000 129.46109 47.46942
## 46 WI 1985 1.076 4748000 107.87700 65732720 41.00000 114.59000 46.45667
## 47 WV 1985 1.076 1907000 112.84740 20852964 33.00000 108.91125 38.18625
## 48 WY 1985 1.076 500000 129.39999 7116756 24.00000 93.46667 24.00000
### Quan tâm đến năm 1995 để lọc dữ liệu năm 1995 ta dùng lệnh trên R, sau đó ta có kết quả:
c1995 <- d[!d$year == '1985',]
c1995## state year cpi population packs income tax price taxs
## 49 AL 1995 1.524 4262731 101.08543 83903280 40.50000 158.3713 41.90467
## 50 AR 1995 1.524 2480121 111.04297 45995496 55.50000 175.5425 63.85917
## 51 AZ 1995 1.524 4306908 71.95417 88870496 65.33333 198.6075 74.79082
## 52 CA 1995 1.524 31493524 56.85931 771470144 61.00000 210.5047 74.77133
## 53 CO 1995 1.524 3738061 82.58292 92946544 44.00000 167.3500 44.00000
## 54 CT 1995 1.524 3265293 79.47219 104315120 74.00000 218.2805 86.35550
## 55 DE 1995 1.524 718265 124.46660 18237436 48.00000 165.6000 48.00000
## 56 FL 1995 1.524 14185403 93.07455 333525344 57.90000 187.7172 68.52551
## 57 GA 1995 1.524 7188538 97.47462 159800448 36.00000 156.5731 37.43142
## 58 IA 1995 1.524 2840860 92.40160 60170928 60.00000 190.8900 69.09000
## 59 ID 1995 1.524 1165000 74.84978 22868920 52.00000 179.6375 60.55417
## 60 IL 1995 1.524 11884935 83.26508 304767456 68.00001 198.4762 79.23450
## 61 IN 1995 1.524 5791819 134.25835 126525008 39.50000 154.5338 46.85875
## 62 KS 1995 1.524 2586942 88.75344 56626672 48.00000 175.2100 56.34333
## 63 KY 1995 1.524 3855248 172.64778 74079712 27.00000 145.9797 35.26300
## 64 LA 1995 1.524 4327978 105.17613 84572688 44.00000 167.7953 50.45367
## 65 MA 1995 1.524 6062335 76.62064 170051568 75.00000 217.1050 85.33833
## 66 MD 1995 1.524 5023650 77.47355 135115456 60.00000 186.0338 68.85875
## 67 ME 1995 1.524 1237438 102.46978 25045934 61.00000 197.2307 72.16400
## 68 MI 1995 1.524 9659871 81.38825 231594240 99.00000 240.8497 112.63300
## 69 MN 1995 1.524 4605445 82.94530 113216856 72.00000 220.3487 86.41534
## 70 MO 1995 1.524 5324610 122.45028 117639672 41.00000 157.2301 42.38842
## 71 MS 1995 1.524 2690788 105.58245 46241956 42.00000 169.2294 53.07108
## 72 MT 1995 1.524 868522 87.15957 16296835 42.00000 156.2167 42.00000
## 73 NC 1995 1.524 7185403 121.53806 157633568 29.00000 149.9940 34.76900
## 74 ND 1995 1.524 641548 79.80697 12243384 68.00000 192.2487 78.88200
## 75 NE 1995 1.524 1635142 87.27071 36293064 58.00000 182.1750 66.67500
## 76 NH 1995 1.524 1145604 156.33675 28649564 49.00000 166.6417 49.00000
## 77 NJ 1995 1.524 7965523 80.37137 233208576 64.00000 203.0872 75.49550
## 78 NM 1995 1.524 1682417 64.66887 31716160 45.00000 176.1462 53.38792
## 79 NV 1995 1.524 1525777 93.52612 39377292 59.00000 206.5992 72.51583
## 80 NY 1995 1.524 18150928 70.81732 503163328 80.00000 221.8580 88.53300
## 81 OH 1995 1.524 11155493 111.38010 255312928 48.00000 165.8913 55.89958
## 82 OK 1995 1.524 3265547 108.68011 63333300 47.00000 170.1350 55.10167
## 83 OR 1995 1.524 3141421 92.15575 71209312 62.00000 190.3000 62.00000
## 84 PA 1995 1.524 12044780 95.64309 285923232 55.00000 176.1632 64.97150
## 85 RI 1995 1.524 989203 92.59980 23786644 80.00000 224.4592 94.68425
## 86 SC 1995 1.524 3699943 108.08275 72050072 31.00000 152.8187 38.27708
## 87 SD 1995 1.524 728251 97.21923 14454129 47.00000 168.0380 53.46300
## 88 TN 1995 1.524 5241168 122.32005 114259984 37.00000 167.0670 49.37533
## 89 TX 1995 1.524 18679706 73.07931 402096768 65.00000 198.2023 76.21900
## 90 UT 1995 1.524 1976774 49.27220 37278220 50.50000 180.9763 59.11792
## 91 VA 1995 1.524 6601392 105.38687 161441792 26.50001 166.6613 34.43626
## 92 VT 1995 1.524 582827 122.33475 12448607 44.00000 175.6387 52.36375
## 93 WA 1995 1.524 5431024 65.53092 129680832 80.50000 239.1093 96.14267
## 94 WI 1995 1.524 5137004 92.46635 115959680 62.00000 201.3813 71.58958
## 95 WV 1995 1.524 1820560 115.56883 32611268 41.00000 166.5172 50.42550
## 96 WY 1995 1.524 478447 112.23814 10293195 36.00000 158.5417 36.00000
### Cung cấp một bảng tóm tắt thống kê về dữ liệu 'Chỉ số giá tiêu dùng', ta dùng câu lệnh trên R, sau đó có được kết quả lần lượt là giá trị nhỏ nhất,giá trị phần tư thứ nhất,giá trị trung bình, giá trị trung vị, giá trị của phần tư thứ ba, giá trị lớn nhất
summary(d$cpi)## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.076 1.076 1.300 1.300 1.524 1.524
### Phân tổ cho dữ liệu 'Giá' không đều và đặt tên theo từng tổ 'nhỏ','vừa','lớn' sau đó gán vào biến slcoded, ta được kết quả là:
d$slcoded <- cut(d$price, breaks = c(84.8, 134, 192, 241),labels = c('nhỏ','vừa','lớn'))
d$slcoded## [1] nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ
## [20] nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ
## [39] nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ nhỏ vừa vừa lớn lớn vừa lớn vừa vừa vừa
## [58] vừa vừa lớn vừa vừa vừa vừa lớn vừa lớn lớn lớn vừa vừa vừa vừa lớn vừa vừa
## [77] lớn vừa lớn lớn vừa vừa vừa vừa lớn vừa vừa vừa lớn vừa vừa vừa lớn lớn vừa
## [96] vừa
## Levels: nhỏ vừa lớn
### Tạo bảng tần số cho dữ lệu 'Giá' được chia thành tổ không đều ở trên, ta dùng câu lệnh trên R, sau đó ta được kết quả là những lần xuất hiện của từng tổ 'nhỏ','vừa,'lớn'
table(d$slcoded)##
## nhỏ vừa lớn
## 48 32 16
### Dùng để tính giá trị trung bình của biến 'Giá'
mean(d$price)## [1] 143.4479
### Dùng để tính phương sai dựa vào dữ liệu của biến 'Giá', sau đó ta có được kết quả: phương sai quá lớn, cho thấy các số trong dữ liệu của biến 'Giá' nằm cách xa giá trị trung bình và có biến động lớn
var(d$price)## [1] 1926.108
### Dùng để tính độ lệch chuẩn của biến'Giá', Độ lệch chuẩn là thước đo độ phân tán hoặc trải rộng của các điểm dữ liệu xung quanh giá trị trung bình.
sd(d$price)## [1] 43.88744
### tính tổng các giá trị trong cột'Giá'của tập dữ liệu "d". Nó cộng tất cả các giá trị riêng lẻ trong cột để cung cấp tổng số tiền.
sum(d$price)## [1] 13771
### Được sử dụng để tính phân vị thứ 30 của cột "Giá" của tập dữ liệu. Sau đó ta có được kết quả sẽ lưu trữ giá trị tương ứng với phân vị thứ 30 của cột "giá" trong tập dữ liệu "d". Giá trị này cho biết điểm giới hạn mà dưới đó 30% giá trong tập dữ liệu giảm xuống
quantile(d$price, .3)## 30%
## 105.1038
### Tạo bảng tần số cho 2 tổ 1985 và 1995 của biến 'Năm'
table(d$year)##
## 1985 1995
## 48 48
### Tính phương sai của cột 'Giá' trong tập dữ liệu d cho từng năm
aggregate(d$price, list(d$year), FUN = 'var')## Group.1 x
## 1 1985 79.11167
## 2 1995 578.38733
### Tính độ lệch chuẩn của cột 'Giá' trong tập dữ liệu d cho từng năm
aggregate(d$price, list(d$year), FUN = 'sd')## Group.1 x
## 1 1985 8.894474
## 2 1995 24.049685
### Tính tổng của cột 'Giá' trong tập dữ d cho từng năm
aggregate(d$price, list(d$year), FUN = 'sum')## Group.1 x
## 1 1985 4975.039
## 2 1995 8795.964
### Tính giá trung bình của cột 'Giá'trong tập dữ liệu d cho từng năm
aggregate(d$price, list(d$year), FUN = 'mean')## Group.1 x
## 1 1985 103.6466
## 2 1995 183.2492
### Để tính toán thống kê tóm tắt của cột "giá" trong tập dữ liệu "d" được nhóm theo các giá trị duy nhất trong cột "năm ". Nó sẽ cung cấp các tóm tắt thống kê như tối thiểu, phần tư thứ nhất, trung bình, trung vị, phần tư thứ 3 và tối đa cho mỗi nhóm.
aggregate(d$price, list(d$year), FUN = 'summary')## Group.1 x.Min. x.1st Qu. x.Median x.Mean x.3rd Qu. x.Max.
## 1 1985 84.96799 98.46302 102.63483 103.64664 108.66187 129.46109
## 2 1995 145.97968 166.61054 176.15470 183.24924 198.50900 240.84967
Mô tả: Dữ liệu CigarettesSW của gói AER là một dữ liệu bảng về mức tiêu thụ thuốc lá của 48 tiểu bang lục địa Hoa kỳ, trong đó gồm 9 biến.
state: Yếu tố chỉ trạng thái.
year: Yếu tố chỉ năm.
cpi: Chỉ số giá tiêu dùng.
population: dân số.
packs: Số gói bình quân đầu người.
income: Thu nhập cá nhân.
tax: Thuế tiêu thụ đặc biệt trung bình của tiểu bang, liên bang và địa phương cho năm tài chính.
price: Giá trong năm tài chính, bao gồm thuế bán hàng.
taxs: Thuế bán hàng.
library(AER)
data(CigarettesSW)### Gán dữ liệu CigarettesSW vào d
d <- CigarettesSW
### Cấu trúc của dataset(CigarettesSW)
str(d)## 'data.frame': 96 obs. of 9 variables:
## $ state : Factor w/ 48 levels "AL","AR","AZ",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ year : Factor w/ 2 levels "1985","1995": 1 1 1 1 1 1 1 1 1 1 ...
## $ cpi : num 1.08 1.08 1.08 1.08 1.08 ...
## $ population: num 3973000 2327000 3184000 26444000 3209000 ...
## $ packs : num 116 129 105 100 113 ...
## $ income : num 4.60e+07 2.62e+07 4.40e+07 4.47e+08 4.95e+07 ...
## $ tax : num 32.5 37 31 26 31 ...
## $ price : num 102.2 101.5 108.6 107.8 94.3 ...
## $ taxs : num 33.3 37 36.2 32.1 31 ...
### Đặt tên cho các biến trong dataset
names(d) <- c('S','YE','C','PO','PA','IN','T','PR','TA')Tới đây đã xong một số việc.
### Hiển thị những dòng đầu của dữ liệu d
head(d)## S YE C PO PA IN T PR TA
## 1 AL 1985 1.076 3973000 116.4863 46014968 32.5 102.18167 33.34834
## 2 AR 1985 1.076 2327000 128.5346 26210736 37.0 101.47500 37.00000
## 3 AZ 1985 1.076 3184000 104.5226 43956936 31.0 108.57875 36.17042
## 4 CA 1985 1.076 26444000 100.3630 447102816 26.0 107.83734 32.10400
## 5 CO 1985 1.076 3209000 112.9635 49466672 31.0 94.26666 31.00000
## 6 CT 1985 1.076 3201000 109.2784 60063368 42.0 128.02499 51.48333
### Gán biến 'Giá'(PR) trong data(d) vào vol
Vol <- d$PR
Vol## [1] 102.18167 101.47500 108.57875 107.83734 94.26666 128.02499 102.49166
## [8] 115.29000 97.02517 101.84200 102.89933 104.44025 96.18000 98.92291
## [15] 87.00125 108.39400 112.20834 91.96667 107.04750 104.91417 113.64967
## [22] 99.33817 105.29333 99.29166 84.96799 106.80800 104.60667 95.50000
## [29] 110.41666 102.77800 114.18850 109.99783 100.42374 101.46808 97.03333
## [36] 109.07401 100.94167 90.64125 97.08334 101.94550 107.38000 110.19584
## [43] 91.61533 100.98334 129.46109 114.59000 108.91125 93.46667 158.37134
## [50] 175.54251 198.60750 210.50467 167.35001 218.28050 165.60001 187.71718
## [57] 156.57307 190.89000 179.63751 198.47617 154.53375 175.21001 145.97968
## [64] 167.79535 217.10501 186.03375 197.23065 240.84967 220.34866 157.23009
## [71] 169.22940 156.21667 149.99400 192.24867 182.17500 166.64166 203.08717
## [78] 176.14624 206.59917 221.85800 165.89125 170.13499 190.30000 176.16316
## [85] 224.45924 152.81874 168.03799 167.06700 198.20233 180.97626 166.66125
## [92] 175.63875 239.10934 201.38126 166.51718 158.54166
### Xem giá trị thứ 34 của biến 'Giá'
Vol[34]## [1] 101.4681
### Lấy những giá trị từ 50 đến 90 của biến 'Giá',sử dụng câu lệnh trên R,sau đó được kết quả là:
Vol15 <- Vol[Vol > 50 & Vol < 90]
Vol15## [1] 87.00125 84.96799
### Lấy những giá trị trong biến 'Giá' >50 hoặc biến 'Thuế tiêu thụ đặc biệt' <80, ta dùng câu lệnh trong R, sau đó ta có được kết quả là:
Voll <- d[d$PR > 50 |d$T < 80,]
Voll## S YE C PO PA IN T PR TA
## 1 AL 1985 1.076 3973000 116.48628 46014968 32.50000 102.18167 33.34834
## 2 AR 1985 1.076 2327000 128.53459 26210736 37.00000 101.47500 37.00000
## 3 AZ 1985 1.076 3184000 104.52261 43956936 31.00000 108.57875 36.17042
## 4 CA 1985 1.076 26444000 100.36304 447102816 26.00000 107.83734 32.10400
## 5 CO 1985 1.076 3209000 112.96354 49466672 31.00000 94.26666 31.00000
## 6 CT 1985 1.076 3201000 109.27835 60063368 42.00000 128.02499 51.48333
## 7 DE 1985 1.076 618000 143.85114 9927301 30.00000 102.49166 30.00000
## 8 FL 1985 1.076 11352000 122.18112 166919248 37.00000 115.29000 42.49000
## 9 GA 1985 1.076 5963000 127.23462 78364336 28.00000 97.02517 28.84183
## 10 IA 1985 1.076 2830000 113.74558 37902896 34.00000 101.84200 37.91700
## 11 ID 1985 1.076 994000 103.01811 11577261 25.10000 102.89933 29.05767
## 12 IL 1985 1.076 11401000 123.20848 176786352 28.00001 104.44025 28.91526
## 13 IN 1985 1.076 5460000 137.63737 71751616 26.50000 96.18000 31.08000
## 14 KS 1985 1.076 2428000 116.68040 34784360 32.00000 98.92291 34.88125
## 15 KY 1985 1.076 3695000 186.03519 42703144 19.00000 87.00125 23.14292
## 16 LA 1985 1.076 4409000 127.55727 53431900 32.00000 108.39400 36.16900
## 17 MA 1985 1.076 5881000 115.67760 98328688 42.00000 112.20834 42.00000
## 18 MD 1985 1.076 4414000 120.97871 74851664 29.00000 91.96667 29.00000
## 19 ME 1985 1.076 1163000 128.11694 14575292 36.00000 107.04750 41.09750
## 20 MI 1985 1.076 9077000 128.00485 133728040 37.00000 104.91417 37.83083
## 21 MN 1985 1.076 4185000 112.90323 63152360 34.00000 113.64967 40.43300
## 22 MO 1985 1.076 5001000 130.37393 69341920 29.00000 99.33817 29.85484
## 23 MS 1985 1.076 2588000 117.04018 25678534 27.58333 105.29333 33.54333
## 24 MT 1985 1.076 822000 104.25790 9785230 32.00000 99.29166 32.00000
## 25 NC 1985 1.076 6255000 155.28377 79104656 18.00000 84.96799 21.26800
## 26 ND 1985 1.076 677000 105.46529 8672948 34.00000 106.80800 38.10800
## 27 NE 1985 1.076 1585000 107.38171 21778072 34.00000 104.60667 38.02333
## 28 NH 1985 1.076 997000 197.99399 15767469 33.00000 95.50000 33.00000
## 29 NJ 1985 1.076 7566000 116.52128 133549208 41.00000 110.41666 41.00000
## 30 NM 1985 1.076 1439000 88.74218 17258916 28.00000 102.77800 31.95300
## 31 NV 1985 1.076 951000 141.95584 14581495 31.00000 114.18850 37.46350
## 32 NY 1985 1.076 17794000 116.66292 297728512 37.00000 109.99783 37.88117
## 33 OH 1985 1.076 10736000 127.59874 153455776 30.00000 100.42374 34.78208
## 34 OK 1985 1.076 3272000 127.13937 43395580 34.00000 101.46808 34.82642
## 35 OR 1985 1.076 2673000 119.45380 36205164 35.00000 97.03333 35.00000
## 36 PA 1985 1.076 11772000 117.70303 170033840 34.00000 109.07401 40.17400
## 37 RI 1985 1.076 967000 132.78178 14229156 39.00000 100.94167 39.00000
## 38 SC 1985 1.076 3304000 127.20944 38536176 23.00000 90.64125 27.31625
## 39 SD 1985 1.076 698000 106.59026 8340000 31.00000 97.08334 31.00000
## 40 TN 1985 1.076 4716000 129.83459 57749668 29.00000 101.94550 34.77050
## 41 TX 1985 1.076 16275000 115.10293 231003152 35.25000 107.38000 39.38000
## 42 UT 1985 1.076 1643000 68.04626 19462380 28.00000 110.19584 34.23750
## 43 VA 1985 1.076 5716000 134.00980 87361632 18.50000 91.61533 22.02367
## 44 VT 1985 1.076 530000 145.28302 6887097 33.00000 100.98334 33.00000
## 45 WA 1985 1.076 4401000 96.22813 64846548 39.00000 129.46109 47.46942
## 46 WI 1985 1.076 4748000 107.87700 65732720 41.00000 114.59000 46.45667
## 47 WV 1985 1.076 1907000 112.84740 20852964 33.00000 108.91125 38.18625
## 48 WY 1985 1.076 500000 129.39999 7116756 24.00000 93.46667 24.00000
## 49 AL 1995 1.524 4262731 101.08543 83903280 40.50000 158.37134 41.90467
## 50 AR 1995 1.524 2480121 111.04297 45995496 55.50000 175.54251 63.85917
## 51 AZ 1995 1.524 4306908 71.95417 88870496 65.33333 198.60750 74.79082
## 52 CA 1995 1.524 31493524 56.85931 771470144 61.00000 210.50467 74.77133
## 53 CO 1995 1.524 3738061 82.58292 92946544 44.00000 167.35001 44.00000
## 54 CT 1995 1.524 3265293 79.47219 104315120 74.00000 218.28050 86.35550
## 55 DE 1995 1.524 718265 124.46660 18237436 48.00000 165.60001 48.00000
## 56 FL 1995 1.524 14185403 93.07455 333525344 57.90000 187.71718 68.52551
## 57 GA 1995 1.524 7188538 97.47462 159800448 36.00000 156.57307 37.43142
## 58 IA 1995 1.524 2840860 92.40160 60170928 60.00000 190.89000 69.09000
## 59 ID 1995 1.524 1165000 74.84978 22868920 52.00000 179.63751 60.55417
## 60 IL 1995 1.524 11884935 83.26508 304767456 68.00001 198.47617 79.23450
## 61 IN 1995 1.524 5791819 134.25835 126525008 39.50000 154.53375 46.85875
## 62 KS 1995 1.524 2586942 88.75344 56626672 48.00000 175.21001 56.34333
## 63 KY 1995 1.524 3855248 172.64778 74079712 27.00000 145.97968 35.26300
## 64 LA 1995 1.524 4327978 105.17613 84572688 44.00000 167.79535 50.45367
## 65 MA 1995 1.524 6062335 76.62064 170051568 75.00000 217.10501 85.33833
## 66 MD 1995 1.524 5023650 77.47355 135115456 60.00000 186.03375 68.85875
## 67 ME 1995 1.524 1237438 102.46978 25045934 61.00000 197.23065 72.16400
## 68 MI 1995 1.524 9659871 81.38825 231594240 99.00000 240.84967 112.63300
## 69 MN 1995 1.524 4605445 82.94530 113216856 72.00000 220.34866 86.41534
## 70 MO 1995 1.524 5324610 122.45028 117639672 41.00000 157.23009 42.38842
## 71 MS 1995 1.524 2690788 105.58245 46241956 42.00000 169.22940 53.07108
## 72 MT 1995 1.524 868522 87.15957 16296835 42.00000 156.21667 42.00000
## 73 NC 1995 1.524 7185403 121.53806 157633568 29.00000 149.99400 34.76900
## 74 ND 1995 1.524 641548 79.80697 12243384 68.00000 192.24867 78.88200
## 75 NE 1995 1.524 1635142 87.27071 36293064 58.00000 182.17500 66.67500
## 76 NH 1995 1.524 1145604 156.33675 28649564 49.00000 166.64166 49.00000
## 77 NJ 1995 1.524 7965523 80.37137 233208576 64.00000 203.08717 75.49550
## 78 NM 1995 1.524 1682417 64.66887 31716160 45.00000 176.14624 53.38792
## 79 NV 1995 1.524 1525777 93.52612 39377292 59.00000 206.59917 72.51583
## 80 NY 1995 1.524 18150928 70.81732 503163328 80.00000 221.85800 88.53300
## 81 OH 1995 1.524 11155493 111.38010 255312928 48.00000 165.89125 55.89958
## 82 OK 1995 1.524 3265547 108.68011 63333300 47.00000 170.13499 55.10167
## 83 OR 1995 1.524 3141421 92.15575 71209312 62.00000 190.30000 62.00000
## 84 PA 1995 1.524 12044780 95.64309 285923232 55.00000 176.16316 64.97150
## 85 RI 1995 1.524 989203 92.59980 23786644 80.00000 224.45924 94.68425
## 86 SC 1995 1.524 3699943 108.08275 72050072 31.00000 152.81874 38.27708
## 87 SD 1995 1.524 728251 97.21923 14454129 47.00000 168.03799 53.46300
## 88 TN 1995 1.524 5241168 122.32005 114259984 37.00000 167.06700 49.37533
## 89 TX 1995 1.524 18679706 73.07931 402096768 65.00000 198.20233 76.21900
## 90 UT 1995 1.524 1976774 49.27220 37278220 50.50000 180.97626 59.11792
## 91 VA 1995 1.524 6601392 105.38687 161441792 26.50001 166.66125 34.43626
## 92 VT 1995 1.524 582827 122.33475 12448607 44.00000 175.63875 52.36375
## 93 WA 1995 1.524 5431024 65.53092 129680832 80.50000 239.10934 96.14267
## 94 WI 1995 1.524 5137004 92.46635 115959680 62.00000 201.38126 71.58958
## 95 WV 1995 1.524 1820560 115.56883 32611268 41.00000 166.51718 50.42550
## 96 WY 1995 1.524 478447 112.23814 10293195 36.00000 158.54166 36.00000
### Chia dữ liệu 'Giá' thành 4 tổ, ta dùng câu lệnh trên R, sau đó biến 'Giá' sẽ được xếp 4 tổ các tổ được xếp từ giá trị bé đến giá trị lớn.
cut(Vol,4)## [1] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (124,163]
## [7] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (84.8,124]
## [13] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (84.8,124]
## [19] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (84.8,124]
## [25] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (84.8,124]
## [31] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (84.8,124]
## [37] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (84.8,124] (84.8,124]
## [43] (84.8,124] (84.8,124] (124,163] (84.8,124] (84.8,124] (84.8,124]
## [49] (124,163] (163,202] (163,202] (202,241] (163,202] (202,241]
## [55] (163,202] (163,202] (124,163] (163,202] (163,202] (163,202]
## [61] (124,163] (163,202] (124,163] (163,202] (202,241] (163,202]
## [67] (163,202] (202,241] (202,241] (124,163] (163,202] (124,163]
## [73] (124,163] (163,202] (163,202] (163,202] (202,241] (163,202]
## [79] (202,241] (202,241] (163,202] (163,202] (163,202] (163,202]
## [85] (202,241] (124,163] (163,202] (163,202] (163,202] (163,202]
## [91] (163,202] (163,202] (202,241] (163,202] (163,202] (124,163]
## Levels: (84.8,124] (124,163] (163,202] (202,241]
### Tạo bảng tần số cho dữ lệu 'Giá' được chia thành 4 tổ ở trên, ta dùng câu lệnh trên R, sau đó ta được kết quả là những lần xuất hiện của từng tổ được chia ở trên.
table(cut(Vol,4))##
## (84.8,124] (124,163] (163,202] (202,241]
## 46 11 29 10
### Bảng giá theo chỉ số tiêu dùng
table(cut(Vol,4),d$C)##
## 1.07599997520447 1.5239999294281
## (84.8,124] 46 0
## (124,163] 2 9
## (163,202] 0 29
## (202,241] 0 10
### Chia dữ liệu 'Thu nhập cá nhân' thành 8 tổ, ta dùng câu lệnh trên R
cut(d$IN,8)## [1] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [4] (3.89e+08,4.85e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [7] (6.12e+06,1.02e+08] (1.02e+08,1.98e+08] (6.12e+06,1.02e+08]
## [10] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (1.02e+08,1.98e+08]
## [13] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [16] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [19] (6.12e+06,1.02e+08] (1.02e+08,1.98e+08] (6.12e+06,1.02e+08]
## [22] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [25] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [28] (6.12e+06,1.02e+08] (1.02e+08,1.98e+08] (6.12e+06,1.02e+08]
## [31] (6.12e+06,1.02e+08] (2.94e+08,3.89e+08] (1.02e+08,1.98e+08]
## [34] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (1.02e+08,1.98e+08]
## [37] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [40] (6.12e+06,1.02e+08] (1.98e+08,2.94e+08] (6.12e+06,1.02e+08]
## [43] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [46] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [49] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [52] (6.76e+08,7.72e+08] (6.12e+06,1.02e+08] (1.02e+08,1.98e+08]
## [55] (6.12e+06,1.02e+08] (2.94e+08,3.89e+08] (1.02e+08,1.98e+08]
## [58] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (2.94e+08,3.89e+08]
## [61] (1.02e+08,1.98e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [64] (6.12e+06,1.02e+08] (1.02e+08,1.98e+08] (1.02e+08,1.98e+08]
## [67] (6.12e+06,1.02e+08] (1.98e+08,2.94e+08] (1.02e+08,1.98e+08]
## [70] (1.02e+08,1.98e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [73] (1.02e+08,1.98e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [76] (6.12e+06,1.02e+08] (1.98e+08,2.94e+08] (6.12e+06,1.02e+08]
## [79] (6.12e+06,1.02e+08] (4.85e+08,5.8e+08] (1.98e+08,2.94e+08]
## [82] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (1.98e+08,2.94e+08]
## [85] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## [88] (1.02e+08,1.98e+08] (3.89e+08,4.85e+08] (6.12e+06,1.02e+08]
## [91] (1.02e+08,1.98e+08] (6.12e+06,1.02e+08] (1.02e+08,1.98e+08]
## [94] (1.02e+08,1.98e+08] (6.12e+06,1.02e+08] (6.12e+06,1.02e+08]
## 8 Levels: (6.12e+06,1.02e+08] (1.02e+08,1.98e+08] ... (6.76e+08,7.72e+08]
### Tạo bảng tần số cho dữ lệu 'Thu nhập cá nhân' được chia thành 8 tổ ở trên, ta dùng câu lệnh trên R, sau đó ta được kết quả là những lần xuất hiện của từng tổ được chia ở trên.
table(cut(d$IN,8))##
## (6.12e+06,1.02e+08] (1.02e+08,1.98e+08] (1.98e+08,2.94e+08] (2.94e+08,3.89e+08]
## 66 18 5 3
## (3.89e+08,4.85e+08] (4.85e+08,5.8e+08] (5.8e+08,6.76e+08] (6.76e+08,7.72e+08]
## 2 1 0 1
### Bảng 'thu nhập cá nhân' theo chỉ số tiêu dùng
table(cut(d$IN,8),d$C)##
## 1.07599997520447 1.5239999294281
## (6.12e+06,1.02e+08] 39 27
## (1.02e+08,1.98e+08] 6 12
## (1.98e+08,2.94e+08] 1 4
## (2.94e+08,3.89e+08] 1 2
## (3.89e+08,4.85e+08] 1 1
## (4.85e+08,5.8e+08] 0 1
## (5.8e+08,6.76e+08] 0 0
## (6.76e+08,7.72e+08] 0 1