library(openxlsx)
library(DT)
h <- read.xlsx("/Users/phamxuanhoan/Downloads/population-and-demography.xlsx")
datatable(h)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.4.4 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.0
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
names(h) <- c("C","Y","P","P1","P5","P15","P25","P15TO64","PO15","PO18","PA1","P1TO4","P5TO9", "P10TO14", "P15TO19","P20TO29","P30TO39", "P40TO49", "P50TO59", "P60TO69", "P70TO79", "P80TO89", "P90TO99", "P100")
datatable(h)
library(dplyr)
h1 <- filter(h,C=='Andorra'| C=='Angola'| C=='Asia'| C=='Canada'| C=='Chile' ) %>% select(-c('P25','P15TO64','PO15','PO18','PA1','P1TO4','P5TO9','P10TO14','P15TO19','P20TO29','P30TO39','P40TO49','P50TO59','P60TO69','P70TO79','P80TO89','P90TO99','P100'))
table <- knitr::kable(h1, format="markdown")
datatable(h1)
table(h1$C)
##
## Andorra Angola Canada Chile
## 72 72 72 72
table(cut(h1$P,3))
##
## (-3.28e+04,1.27e+07] (1.27e+07,2.54e+07] (2.54e+07,3.82e+07]
## 153 88 47
summary(h1$P)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 5335 3378700 11722513 13005253 19780416 38155012
sum(h1$P)
## [1] 3745512794
length(h1$Y)
## [1] 288
var(h1$Y)
## [1] 433.4216
Ta thấy giá trị của phương sai khá lớn nên độ phân tán của các giá trị xung quanh giá trị trung bình là khá cao
Sd là độ lệch chuẩn của Y và bằng căn bậc hai của phương sai
sd(h1$Y)
## [1] 20.81878
k1 <- h1 %>% group_by(C) %>% summarise(mean_of_p = mean(P))
mean(k1$mean_of_p)
## [1] 13005253
library(knitr)
datatable(k1)
k2 <- h1 %>% group_by(Y) %>% summarise(n = n(),mean_of_p = mean(P))
mean(k2$mean_of_p)
## [1] 13005253
library(knitr)
datatable(k2)
k3 <- h1 %>% group_by(C,Y) %>% summarise(n = n(),mean_of_P = mean(P1),.groups = 'drop')
mean(k3$P1)
## [1] NA
library(knitr)
datatable(k3)
library(openxlsx)
m <- read.xlsx("/Users/phamxuanhoan/Downloads/NY-House-Dataset.xlsx")
datatable(m)
names(m) <- c("br","t","p","be","ba","pr","a","st","m","ad","l","s","sn","ln","fa","la","lo")
names(m)
## [1] "br" "t" "p" "be" "ba" "pr" "a" "st" "m" "ad" "l" "s" "sn" "ln" "fa"
## [16] "la" "lo"
datatable(m)
library(dplyr)
m1 <- filter(m,t=='House for sale'| t=='Condo for sale'| t=='Co-op for sale'| t=='Land for sale' ) %>% select(-c('pr','a','st','m','ad','l','s','sn','ln','fa','la','lo'))
table <- knitr::kable(m1, format="markdown")
datatable(m1)
table(m1$t)
##
## Co-op for sale Condo for sale House for sale Land for sale
## 1450 891 1012 49
table(cut(m1$ba,3))
##
## (0.985,6] (6,11] (11,16]
## 3386 14 2
summary(m1$be)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.00 2.00 3.00 2.61 3.00 32.00
sum(m1$be)
## [1] 8879
length(m1$be)
## [1] 3402
var(m1$be)
## [1] 2.186823
Ta thấy giá trị của phương sai khá nhỏ nên độ phân tán của các giá trị xung quanh giá trị trung bình là khá thấp
Sd là độ lệch chuẩn của Y và bằng căn bậc hai của phương sai
sd(m1$be)
## [1] 1.478791
n1 <- m1 %>% group_by(t) %>% summarise(mean_of_bed = mean(be))
mean(n1$mean_of_be)
## [1] NA
library(knitr)
datatable(n1)
n2 <- m1 %>% group_by(t) %>% summarise(n = n(),mean_of_bed = mean(be))
mean(n2$mean_of_be)
## [1] NA
library(knitr)
datatable(n2)
n3 <- m1 %>% group_by(t) %>% summarise(mean_of_bath = mean(ba))
mean(n3$mean_of_ba)
## [1] NA
library(knitr)
datatable(n3)