Bộ dữ liệu kinh tế là một bộ dữ liệu nó chứa thông tin về số người thất nghiệp, tỷ lệ tiết kiệm cá nhân và tiêu dùng cá nhân theo năm và tháng. Bộ dữ liệu này được tạo ra từ dữ liệu chuỗi thời gian kinh tế của Hoa Kỳ có sẵn từ Ngân hàng Dự trữ Liên Bang St. Louis.
Dữ liệu trên bao gồm 574 quan sát và chứa 6 biến:
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.2.3
data("economics")
Eco <- economics
summary(Eco)
## date pce pop psavert
## Min. :1967-07-01 Min. : 506.7 Min. :198712 Min. : 2.200
## 1st Qu.:1979-06-08 1st Qu.: 1578.3 1st Qu.:224896 1st Qu.: 6.400
## Median :1991-05-16 Median : 3936.8 Median :253060 Median : 8.400
## Mean :1991-05-17 Mean : 4820.1 Mean :257160 Mean : 8.567
## 3rd Qu.:2003-04-23 3rd Qu.: 7626.3 3rd Qu.:290291 3rd Qu.:11.100
## Max. :2015-04-01 Max. :12193.8 Max. :320402 Max. :17.300
## uempmed unemploy
## Min. : 4.000 Min. : 2685
## 1st Qu.: 6.000 1st Qu.: 6284
## Median : 7.500 Median : 7494
## Mean : 8.609 Mean : 7771
## 3rd Qu.: 9.100 3rd Qu.: 8686
## Max. :25.200 Max. :15352
head(Eco)
## # A tibble: 6 × 6
## date pce pop psavert uempmed unemploy
## <date> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1967-07-01 507. 198712 12.6 4.5 2944
## 2 1967-08-01 510. 198911 12.6 4.7 2945
## 3 1967-09-01 516. 199113 11.9 4.6 2958
## 4 1967-10-01 512. 199311 12.9 4.9 3143
## 5 1967-11-01 517. 199498 12.8 4.7 3066
## 6 1967-12-01 525. 199657 11.8 4.8 3018
tail(Eco)
## # A tibble: 6 × 6
## date pce pop psavert uempmed unemploy
## <date> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2014-11-01 12051. 319564. 7.3 13 9090
## 2 2014-12-01 12062 319746. 7.6 12.9 8717
## 3 2015-01-01 12046 319929. 7.7 13.2 8903
## 4 2015-02-01 12082. 320075. 7.9 12.9 8610
## 5 2015-03-01 12158. 320231. 7.4 12 8504
## 6 2015-04-01 12194. 320402. 7.6 11.5 8526
str(Eco)
## spc_tbl_ [574 × 6] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ date : Date[1:574], format: "1967-07-01" "1967-08-01" ...
## $ pce : num [1:574] 507 510 516 512 517 ...
## $ pop : num [1:574] 198712 198911 199113 199311 199498 ...
## $ psavert : num [1:574] 12.6 12.6 11.9 12.9 12.8 11.8 11.7 12.3 11.7 12.3 ...
## $ uempmed : num [1:574] 4.5 4.7 4.6 4.9 4.7 4.8 5.1 4.5 4.1 4.6 ...
## $ unemploy: num [1:574] 2944 2945 2958 3143 3066 ...
`
ggplot(data = economics, aes(x = date, y = unemploy)) +
geom_point(aes(color =uempmed)) +
labs(x = "Date",
y = "Unemployment",
title = "Số người thất nghiệp theo thời gian") +
theme_bw()
Nhận xét: Qua biểu đồ ta thấy có các chấm sáng hơn là thể hiện thời gian
thất nghiệp dài hơn, đơn vị tính cho thời gian thất nghiệp trung bình
tính bằng tuần. Từ năm 2007-2010 có sự tăng trưởng ở mức cao nhất có
nghĩa là thời gian thất nghiệp dài hơn trong thời kỳ suy thoái.
ggplot(data = economics) +
geom_bar(aes(x = date, y = psavert, fill = pop), stat = 'identity') +
labs(x = "Date",
y = "Personal Savings Rate",
fill = 'population',
title = "Tỷ lệ tiết kiệm của dân số mỗi năm") +
theme_bw()
Nhận xét: Tỷ lệ tiết kiệm là số tiền mà một cá nhân tiết kiệm được qua
mỗi năm theo tỷ lệ phần trăm. Qua biểu đồ ta thấy được dân số đang tăng
qua mỗi năm cho thấy theo thời gian thì dân số không ảnh hưởng đến tỷ lệ
tiết kiệm của dân số qua mỗi năm. ## Sử dụng lệnh pivot_wider để
xoay khung dữ liệu từ dạng dài sang dạng rộng
cor.test(economics$pce,economics$psavert)
##
## Pearson's product-moment correlation
##
## data: economics$pce and economics$psavert
## t = -31.116, df = 572, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.8213959 -0.7603523
## sample estimates:
## cor
## -0.7928546
Nhận xét: Qua bảng số liệu ta thấy p-value < 2.2e-16 < 0,05. Suy ra bác bỏ H0. Vậy chi tiêu của cá nhân có ảnh hưởng đến tỷ lệ tiết kiệm
Dataset: HousePrices - Package AER. Dữ liệu “HousePrices” được lấy từ gói AER. Trong bộ dữ trên liên quan đến giá bán của 546 căn nhà ở thành phố Windsor, Canada trong tháng 7,8,9 của năm 1987.
Dữ liệu trên bao gồm 12 biến:
library(AER)
## Warning: package 'AER' was built under R version 4.2.3
## Loading required package: car
## Warning: package 'car' was built under R version 4.2.3
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.2.3
## Loading required package: lmtest
## Warning: package 'lmtest' was built under R version 4.2.3
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.2.3
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
## Loading required package: sandwich
## Warning: package 'sandwich' was built under R version 4.2.3
## Loading required package: survival
data("HousePrices")
mk <- HousePrices
Ở tuần này tôi sẽ thực hiện tính toán các thống kê mô tả
Đánh giá được độ tập trung và phân tán của dữ liệu. Dùng đồ thị để thể hiện tần số của các biến. Kiểm định rằng càng biến có quan hệ phụ thuộc nhau hay không và phân tích quan hệ ấy bằng đồ thị đơn giản ## Phân tổ không đều Ở mục này tôi bắt đầu phân tổ biến giá bán nhà và biến diện tích của ngôi nhà. Tôi phân thành 4 tổ và sau đó tôi gán chúng vào mk
mk$price <- cut(mk$price, breaks = c(25000,80000,135000,190000), labels = c(" giá thấp", "giá Vừa", "giá cao"))
table(mk$price)
##
## giá thấp giá Vừa giá cao
## 400 131 12
mk$lotsize <- cut(mk$lotsize, breaks = c(4000,5000,8000,11000), labels = c("S nhỏ","S vừa","S rộng"))
table(mk$lotsize)
##
## S nhỏ S vừa S rộng
## 103 183 42
table(mk$bat, mk$price)
##
## giá thấp giá Vừa giá cao
## 1 340 56 3
## 2 56 73 4
## 3 4 2 4
## 4 0 0 1
k=table(mk$bat, mk$price)
prop.table(k)
##
## giá thấp giá Vừa giá cao
## 1 0.626151013 0.103130755 0.005524862
## 2 0.103130755 0.134438306 0.007366483
## 3 0.007366483 0.003683241 0.007366483
## 4 0.000000000 0.000000000 0.001841621
Nhận xét: Ở những ngôi nhà có 1 phòng tắm thì tỷ lệ giá bán thấp sẽ tập trung đông chiến hơn một nửa 62,6% cao hơn nhiều so với giá vừa(10,3%) và giá cao(0.5%). Với những ngôi nhà có 4 phòng tắm thì tỷ lệ có giá bán thấp, vừa, cao là như nhau chiếm tỷ lệ rất nhỏ dưới 0.2%.
table(mk$bed, mk$lotsize)
##
## S nhỏ S vừa S rộng
## 1 0 0 0
## 2 32 27 8
## 3 48 113 23
## 4 21 39 10
## 5 1 4 1
## 6 1 0 0
h= table(mk$bed, mk$lotsize)
prop.table(h)
##
## S nhỏ S vừa S rộng
## 1 0.00000000 0.00000000 0.00000000
## 2 0.09756098 0.08231707 0.02439024
## 3 0.14634146 0.34451220 0.07012195
## 4 0.06402439 0.11890244 0.03048780
## 5 0.00304878 0.01219512 0.00304878
## 6 0.00304878 0.00000000 0.00000000
Nhận xét: Ở những ngôi nhà có 1 phòng ngủ và 4 phòng ngủ thì diện tích ngôi nhà chiếm tỷ lệ rất nhỏ dưới 0,3%. Ở những ngôi nhà có 3 phòng ngủ thì diện tích của ngôi nhà chiếm tỷ lệ cao hơn những ngôi nhà có 2 phòng ngủ. Ở những ngôi nhà có diện tích vừa mà có 3 phòng ngủ chiếm tỷ lệ cao 34,5% . Qua bảng tần suất diện tích của ngôi nhà thì ta thấy các ngôi nhà có diện tích nhỏ và vừa mà có 2,3 phòng ngủ chiến tỷ lệ khá cao.
Trong phần này chúng ta sẽ tính các đặc trưng đo lường, trung bình, phương sai,độ lệch chuẩn,tổng của các biến bằng lệnh summary, mean, sd,var,quantile,sum để có cái nhìn tổng quan hơn. ### DÙng hàm summary Tôi dùng hàm Summary để tóm tắt thống kê cho toàn bộ dữ liệu.
summary(mk$bedrooms)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.000 2.000 3.000 2.965 3.000 6.000
Nhận xét: Qua bảng tóm tắt trên ta thấy các ngôi nhà có ít nhất 1 phòng ngủ và nhiều nhất là 6 phòng ngủ. Các ngôi nhà có số phòng ngủ trung bình là 3 phòng. Có 25% số ngôi nhà có số phòng ngủ nhỏ hơn 2 phòng, có 50% số ngôi nhà có số phòng ngủ nhỏ hơn 3 phòng và 75% số ngôi nhà có số phòng ngủ nhỏ hơn 3 phòng
summary(mk$stories)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.000 1.000 2.000 1.808 2.000 4.000
Nhận xét: Qua bảng tóm tắt trên ta thấy các ngôi nhà có ít nhất 1 tầng và nhiều nhất 4 tầng và trung bình các ngôi nhà có 2 tầng. Có 25% số ngôi nhà có số tầng nhỏ hơn 1 tầng, có 50% số ngôi nhà có số tầng nhỏ hơn 2 tầng và 75% số ngôi nhà có số tầng nhỏ hơn 2 tầng
summary(mk$garage)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.0000 0.0000 0.6923 1.0000 3.0000
Nhận xét: Qua bảng tóm tắt thống kê trên ta thấy số chỗ để xe nhỏ nhất là 0 và lớn nhất là 3 chỗ. Số chỗ để xe trung bình là 3 chỗ. Có 25% số ngôi nhà có số chỗ để xe nhỏ hơn 0, có 50% số ngôi nhà có số chỗ để xe nhỏ hơn 0 và 75% số ngôi nhà có số chỗ để xe nhỏ hơn 1 chỗ.
mean(mk$bathrooms)
## [1] 1.285714
Nhận xét: Số phòng tắm trung bình của ngôi nhà là 1,235714
var(mk$bathrooms)
## [1] 0.2521625
Nhận xét: SỐ 0.2521625 đại diện cho mức độ phân tán của số phòng tắm so với giá bán trung bình
sd(mk$bathrooms)
## [1] 0.5021579
Nhận xét: Số 0,5021579 đo lường mức độ phân tán của giá bán cho số phòng tắm trung bình #### Tổng
sum(mk$bathrooms)
## [1] 702
Nhận xét: Có tới 702 phòng tắm trong 546 ngôi nhà #### Quantile
quantile(mk$bathrooms, .50)
## 50%
## 1
Nhận xét: Hàm quantile dùng để tính phân vị của tập dữ liệu. Kết quả có 50% ngôi nhà có giá bán cho số phòng tắm ít hơn 1 phòng
aggregate(HousePrices$lotsize,list(HousePrices$bedrooms), FUN="mean")
## Group.1 x
## 1 1 3710.000
## 2 2 4636.235
## 3 3 5225.867
## 4 4 5582.063
## 5 5 6291.500
## 6 6 3950.000
Nhận xét: Nhà có 1 phòng ngủ có diện tích trung bình là 3710 mét vuông. Nhà có 2 phòng ngủ có diện tích trung binhg là 4636 mét vuông, 3 phòng ngủ là 5226 mét vuông, 4 phòng ngủ là 5582 mét vuông, 5 phòng ngủ là 6292 mét vuông và 6 phòng ngủ là 3950 mét vuông
aggregate(HousePrices$lotsize,list(HousePrices$garage), FUN="mean")
## Group.1 x
## 1 0 4502.783
## 2 1 5576.357
## 3 2 6226.380
## 4 3 7178.333
Nhận xét: Diện tích trung bình của ngôi nhà có 3 chỗ để xe chiếm diện tích lớn nhất 7178 mét vuông, 2 chỗ để xe là 6226 mét vuông, 1 chỗ để xe là 5576 mét vuông và không có chỗ để xe chiếm diện tích bé nhất là 4503 mét vuông ### Toán tử %>%
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.2.3
## Warning: package 'tibble' was built under R version 4.2.3
## Warning: package 'tidyr' was built under R version 4.2.3
## Warning: package 'readr' was built under R version 4.2.3
## Warning: package 'purrr' was built under R version 4.2.3
## Warning: package 'dplyr' was built under R version 4.2.3
## Warning: package 'stringr' was built under R version 4.2.3
## Warning: package 'forcats' was built under R version 4.2.3
## Warning: package 'lubridate' was built under R version 4.2.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.2 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ lubridate 1.9.2 ✔ tibble 3.2.1
## ✔ purrr 1.0.1 ✔ tidyr 1.3.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ✖ dplyr::recode() masks car::recode()
## ✖ purrr::some() masks car::some()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
mk %>% group_by(lotsize) %>% summarise(m=mean(garage))
## # A tibble: 4 × 2
## lotsize m
## <fct> <dbl>
## 1 S nhỏ 0.592
## 2 S vừa 0.847
## 3 S rộng 1.48
## 4 <NA> 0.459
mk %>% group_by(lotsize) %>% summarise(m=var(garage))
## # A tibble: 4 × 2
## lotsize m
## <fct> <dbl>
## 1 S nhỏ 0.616
## 2 S vừa 0.823
## 3 S rộng 0.743
## 4 <NA> 0.544
mk %>% group_by(lotsize) %>% summarise(m=sd(garage))
## # A tibble: 4 × 2
## lotsize m
## <fct> <dbl>
## 1 S nhỏ 0.785
## 2 S vừa 0.907
## 3 S rộng 0.862
## 4 <NA> 0.738
a <- mk$bathrooms
a1 <- a[1:100]
a2 <- a[101:200]
bathrooms1 <- data.frame(sophong=a1,nguoimua="A")
bathrooms2 <- data.frame(sophong=a2,nguoimua="B")
bathroomsnew <- rbind(bathrooms1,bathrooms2)
bathroomsnew
## sophong nguoimua
## 1 1 A
## 2 1 A
## 3 1 A
## 4 1 A
## 5 1 A
## 6 1 A
## 7 2 A
## 8 1 A
## 9 1 A
## 10 2 A
## 11 2 A
## 12 1 A
## 13 1 A
## 14 1 A
## 15 1 A
## 16 1 A
## 17 1 A
## 18 1 A
## 19 1 A
## 20 2 A
## 21 1 A
## 22 2 A
## 23 1 A
## 24 1 A
## 25 1 A
## 26 1 A
## 27 1 A
## 28 1 A
## 29 1 A
## 30 1 A
## 31 1 A
## 32 1 A
## 33 1 A
## 34 1 A
## 35 1 A
## 36 1 A
## 37 1 A
## 38 1 A
## 39 2 A
## 40 2 A
## 41 1 A
## 42 1 A
## 43 1 A
## 44 3 A
## 45 1 A
## 46 1 A
## 47 1 A
## 48 1 A
## 49 1 A
## 50 1 A
## 51 2 A
## 52 1 A
## 53 1 A
## 54 1 A
## 55 3 A
## 56 1 A
## 57 1 A
## 58 2 A
## 59 1 A
## 60 1 A
## 61 1 A
## 62 1 A
## 63 1 A
## 64 1 A
## 65 1 A
## 66 1 A
## 67 1 A
## 68 1 A
## 69 1 A
## 70 1 A
## 71 1 A
## 72 1 A
## 73 1 A
## 74 1 A
## 75 1 A
## 76 1 A
## 77 1 A
## 78 1 A
## 79 2 A
## 80 1 A
## 81 1 A
## 82 1 A
## 83 1 A
## 84 1 A
## 85 1 A
## 86 1 A
## 87 1 A
## 88 2 A
## 89 1 A
## 90 1 A
## 91 1 A
## 92 2 A
## 93 1 A
## 94 2 A
## 95 1 A
## 96 1 A
## 97 1 A
## 98 1 A
## 99 1 A
## 100 1 A
## 101 2 B
## 102 3 B
## 103 1 B
## 104 2 B
## 105 2 B
## 106 1 B
## 107 1 B
## 108 2 B
## 109 2 B
## 110 1 B
## 111 1 B
## 112 1 B
## 113 1 B
## 114 1 B
## 115 2 B
## 116 1 B
## 117 1 B
## 118 2 B
## 119 2 B
## 120 1 B
## 121 1 B
## 122 2 B
## 123 1 B
## 124 1 B
## 125 1 B
## 126 2 B
## 127 3 B
## 128 2 B
## 129 2 B
## 130 2 B
## 131 1 B
## 132 1 B
## 133 1 B
## 134 1 B
## 135 1 B
## 136 2 B
## 137 1 B
## 138 1 B
## 139 1 B
## 140 1 B
## 141 1 B
## 142 1 B
## 143 2 B
## 144 1 B
## 145 1 B
## 146 1 B
## 147 1 B
## 148 2 B
## 149 2 B
## 150 1 B
## 151 1 B
## 152 1 B
## 153 2 B
## 154 1 B
## 155 1 B
## 156 3 B
## 157 1 B
## 158 2 B
## 159 1 B
## 160 1 B
## 161 1 B
## 162 1 B
## 163 1 B
## 164 2 B
## 165 1 B
## 166 1 B
## 167 1 B
## 168 1 B
## 169 1 B
## 170 1 B
## 171 1 B
## 172 1 B
## 173 1 B
## 174 1 B
## 175 1 B
## 176 2 B
## 177 1 B
## 178 2 B
## 179 2 B
## 180 1 B
## 181 1 B
## 182 1 B
## 183 1 B
## 184 1 B
## 185 1 B
## 186 1 B
## 187 1 B
## 188 1 B
## 189 1 B
## 190 1 B
## 191 1 B
## 192 1 B
## 193 1 B
## 194 2 B
## 195 1 B
## 196 1 B
## 197 1 B
## 198 1 B
## 199 1 B
## 200 1 B
hist(mk$bathrooms )
library(AER)
data("HousePrices")
Trong phần này tôi sẽ thực hành một số thao tác là gán dữ liệu, đặt tên cho bộ dữ liệu, sử dụng str để hiển thị cấu trúc của dữ liệu, xem các quan sát đầu, quan sát cuối và tạo các bản tóm tắt cho dữ liệu
Đầu tiên tôi gán dataset HousePrices vào một biến có tên là mk
mk <- HousePrices
str(mk)
## 'data.frame': 546 obs. of 12 variables:
## $ price : num 42000 38500 49500 60500 61000 66000 66000 69000 83800 88500 ...
## $ lotsize : num 5850 4000 3060 6650 6360 4160 3880 4160 4800 5500 ...
## $ bedrooms : num 3 2 3 3 2 3 3 3 3 3 ...
## $ bathrooms : num 1 1 1 1 1 1 2 1 1 2 ...
## $ stories : num 2 1 1 2 1 1 2 3 1 4 ...
## $ driveway : Factor w/ 2 levels "no","yes": 2 2 2 2 2 2 2 2 2 2 ...
## $ recreation: Factor w/ 2 levels "no","yes": 1 1 1 2 1 2 1 1 2 2 ...
## $ fullbase : Factor w/ 2 levels "no","yes": 2 1 1 1 1 2 2 1 2 1 ...
## $ gasheat : Factor w/ 2 levels "no","yes": 1 1 1 1 1 1 1 1 1 1 ...
## $ aircon : Factor w/ 2 levels "no","yes": 1 1 1 1 1 2 1 1 1 2 ...
## $ garage : num 1 0 0 0 0 0 2 0 0 1 ...
## $ prefer : Factor w/ 2 levels "no","yes": 1 1 1 1 1 1 1 1 1 1 ...
head(mk)
## price lotsize bedrooms bathrooms stories driveway recreation fullbase gasheat
## 1 42000 5850 3 1 2 yes no yes no
## 2 38500 4000 2 1 1 yes no no no
## 3 49500 3060 3 1 1 yes no no no
## 4 60500 6650 3 1 2 yes yes no no
## 5 61000 6360 2 1 1 yes no no no
## 6 66000 4160 3 1 1 yes yes yes no
## aircon garage prefer
## 1 no 1 no
## 2 no 0 no
## 3 no 0 no
## 4 no 0 no
## 5 no 0 no
## 6 yes 0 no
tail(mk)
## price lotsize bedrooms bathrooms stories driveway recreation fullbase
## 541 85000 6525 3 2 4 yes no no
## 542 91500 4800 3 2 4 yes yes no
## 543 94000 6000 3 2 4 yes no no
## 544 103000 6000 3 2 4 yes yes no
## 545 105000 6000 3 2 2 yes yes no
## 546 105000 6000 3 1 2 yes no no
## gasheat aircon garage prefer
## 541 no no 1 no
## 542 no yes 0 no
## 543 no yes 0 no
## 544 no yes 1 no
## 545 no yes 1 no
## 546 no yes 1 no
names(mk) <- c("pr","lot","bed","bat","str","dr","rec","fb","gas","air","gar","pre")
price <- mk$pr
lotsize <- mk$lot
bedrooms <- mk$bed
bathrooms <- mk$bat
stories <- mk$str
summary(mk)
## pr lot bed bat
## Min. : 25000 Min. : 1650 Min. :1.000 Min. :1.000
## 1st Qu.: 49125 1st Qu.: 3600 1st Qu.:2.000 1st Qu.:1.000
## Median : 62000 Median : 4600 Median :3.000 Median :1.000
## Mean : 68122 Mean : 5150 Mean :2.965 Mean :1.286
## 3rd Qu.: 82000 3rd Qu.: 6360 3rd Qu.:3.000 3rd Qu.:2.000
## Max. :190000 Max. :16200 Max. :6.000 Max. :4.000
## str dr rec fb gas air
## Min. :1.000 no : 77 no :449 no :355 no :521 no :373
## 1st Qu.:1.000 yes:469 yes: 97 yes:191 yes: 25 yes:173
## Median :2.000
## Mean :1.808
## 3rd Qu.:2.000
## Max. :4.000
## gar pre
## Min. :0.0000 no :418
## 1st Qu.:0.0000 yes:128
## Median :0.0000
## Mean :0.6923
## 3rd Qu.:1.0000
## Max. :3.0000
lot1 <- mk[mk$lot>5000,]
Nhận xét: Kết quả là 236 có nghĩa là các ngôi nhà ở đây có tổng diện tích trên 5000 mét vuông thì có 236 ngôi nhà chiếm tỷ lệ 43,22% trên tổng số.
Tôi dùng lệnh table để tạo một bảng số phòng ngủ của các ngôi nhà được bán và tôi chia chúng thành 5 tổ có khảng cách đều nhau
table(cut(mk$bed, breaks = c(0,1,2,3,4,5)))
##
## (0,1] (1,2] (2,3] (3,4] (4,5]
## 2 136 301 95 10
table(cut(mk$gar,3 ),mk$fb)
##
## no yes
## (-0.003,1] 285 141
## (1,2] 62 46
## (2,3] 8 4
mk$str[4]
## [1] 2
mk[4,2]
## [1] 6650
k <- mk[mk$pr>50000 & mk$pr<90000,]
Kết quả tôi nhận được là có 290 ngôi đang có giá bán từ 50 nghìn đô tới 90 nghìn đô
Để biết được trong tất cả 546 ngôi nhà ở đây thì có bao nhiêu ngôi nhà có 3 phòng tắm thì tôi chọn biến bathrooms. Sau đó tôi gán chúng vào h và kết quả nhận được là có tới 10 ngôi nhà đang có phòng tắm chiếm 1,83% trong tổng số các ngôi nhà
h <- mk[mk$bat == 3,]
bed1 <- mk[mk$bed == 4,]