這份作業希望能夠讓你熟悉讀取不同檔案型態的資料,並利用
dplyr
裡面幾個動詞,讓你可以認識自己要分析的資料!
資料介紹:這份資料改編自內政部不動產交易實價登錄查詢,內容是 110 年 1 月自 3 月為止,台北市大安區羅斯福路上的不動產交易。
data 資料夾 -> AS02 資料夾 -> 實價登錄_羅斯福路.xlsx
這個檔案裡面的 實價登錄
分頁,取名為
df_house
,並將前 3 列印出。這個 excel
檔案裡面有兩個分頁,不要讀錯囉。### your code
library(tidyverse)
library(readxl)
<- read_excel("data/AS02/實價登錄_羅斯福路.xlsx", sheet = "實價登錄")
df_house %>% head(3)
df_house
### result
#> # A tibble: 3 × 6
#> 地段位置或門牌 總價_萬元 總面積_坪 型態 屋齡 電梯
#> <chr> <dbl> <dbl> <chr> <dbl> <chr>
#> 1 羅斯福路三段57號四樓 3956 34.6 住宅大樓(11層含… 5 有
#> 2 羅斯福路三段333巷2號四樓 1250 20.6 公寓(5樓含以下無… NA 無
#> 3 羅斯福路三段227號二樓之2 3800 54.4 住宅大樓(11層含… 33 有
#> # A tibble: 3 × 6
#> 地段位置或門牌 總價_萬元 總面積_坪 型態 屋齡 電梯
#> <chr> <dbl> <dbl> <chr> <dbl> <chr>
#> 1 羅斯福路三段57號四樓 3956 34.6 住宅大樓(11層含… 5 有
#> 2 羅斯福路三段333巷2號四樓 1250 20.6 公寓(5樓含以下無… NA 無
#> 3 羅斯福路三段227號二樓之2 3800 54.4 住宅大樓(11層含… 33 有
df_house
裡面哪些欄位有 missing value,並以文字敘述各個欄位 missing value
的狀況。舉例:A 欄位有 2 個 missing values、B 欄位有 3 個 missing
values。### your code
sum(is.na(df_house$地段位置或門牌))
sum(is.na(df_house$總價_萬元))
sum(is.na(df_house$總面積_坪))
sum(is.na(df_house$型態))
sum(is.na(df_house$屋齡))
sum(is.na(df_house$電梯))
### result
# 要有程式碼呈現 NA 數目
# 接著文字敘述 e.g. 完美,都沒有 missing values
#> [1] 0
#> [1] 0
#> [1] 0
#> [1] 0
#> [1] 6
#> [1] 2
### your code
mean(df_house$屋齡, na.rm = T)
### result
# 要有程式碼呈現平均屋齡
# 接著文字解釋
#> [1] 26
電梯
欄位,解釋先以文字敘述你會怎麼選擇怎麼處理、理由為何,接著用程式碼實作,並將結果存到
df_house_clean
,再將最後 3
列印出。舉例:我覺得可能有電梯也可能沒有電梯,所以我決定隨機決定電梯的有無。(然後用程式碼實作隨機分派的過程)### your code
<- df_house %>%
df_house_clean mutate(`電梯` = if_else(is.na(`電梯`), "有", `電梯`))
%>% tail(3)
df_house_clean
### result
# * 你的電梯欄位長相可能跟我不一樣
#> # A tibble: 3 × 6
#> 地段位置或門牌 總價_萬元 總面積_坪 型態 屋齡 電梯
#> <chr> <dbl> <dbl> <chr> <dbl> <chr>
#> 1 羅斯福路三段269巷72號二樓 3450 43.1 華廈(10層含以下… NA 有
#> 2 羅斯福路三段99號十樓之3 2208 18.5 住宅大樓(11層含… 22 有
#> 3 羅斯福路四段119巷30號六樓 3110 50.8 華廈(10層含以下… 34 有
#> # A tibble: 3 × 6
#> 地段位置或門牌 總價_萬元 總面積_坪 型態 屋齡 電梯
#> <chr> <dbl> <dbl> <chr> <dbl> <chr>
#> 1 羅斯福路三段269巷72號二樓 3450 43.1 華廈(10層含以下… NA 有
#> 2 羅斯福路三段99號十樓之3 2208 18.5 住宅大樓(11層含… 22 有
#> 3 羅斯福路四段119巷30號六樓 3110 50.8 華廈(10層含以下… 34 有
price_ping
欄位,計算房屋的「每坪單價」,把結果存在
df_house_price
,並將前 3 列印出。### your code
<- df_house_clean %>%
df_house_price mutate(price_ping = `總價_萬元`/`總面積_坪`)
%>% head(3)
df_house_price
### result
#> # A tibble: 3 × 7
#> 地段位置或門牌 總價_萬元 總面積_坪 型態 屋齡 電梯 price_ping
#> <chr> <dbl> <dbl> <chr> <dbl> <chr> <dbl>
#> 1 羅斯福路三段57號四樓 3956 34.6 住宅大… 5 有 115.
#> 2 羅斯福路三段333巷2號四樓 1250 20.6 公寓(5… NA 無 60.7
#> 3 羅斯福路三段227號二樓之2 3800 54.4 住宅大… 33 有 69.9
#> # A tibble: 3 × 7
#> 地段位置或門牌 總價_萬元 總面積_坪 型態 屋齡 電梯 price_ping
#> <chr> <dbl> <dbl> <chr> <dbl> <chr> <dbl>
#> 1 羅斯福路三段57號四樓 3956 34.6 住宅… 5 有 115.
#> 2 羅斯福路三段333巷2號四樓 1250 20.6 公寓(… NA 無 60.7
#> 3 羅斯福路三段227號二樓之2 3800 54.4 住宅… 33 有 69.9
地段位置或門牌
, 電梯
, price_ping
3 個欄位,並將結果印出。### your code
%>% filter(總價_萬元 > 2000) %>%
df_house_price filter(price_ping < 80) %>%
select(`地段位置或門牌`, `電梯`, `price_ping`)
### result
#> # A tibble: 4 × 3
#> 地段位置或門牌 電梯 price_ping
#> <chr> <chr> <dbl>
#> 1 羅斯福路三段227號二樓之2 有 69.9
#> 2 羅斯福路二段67號地下室 有 29.2
#> 3 羅斯福路三段277之6號 有 75.8
#> 4 羅斯福路四段119巷30號六樓 有 61.2
#> # A tibble: 4 × 3
#> 地段位置或門牌 電梯 price_ping
#> <chr> <chr> <dbl>
#> 1 羅斯福路三段227號二樓之2 有 69.9
#> 2 羅斯福路二段67號地下室 有 29.2
#> 3 羅斯福路三段277之6號 有 75.8
#> 4 羅斯福路四段119巷30號六樓 有 61.2
資料介紹:這份資料改編自內政部社會經濟資料服務平台,簡稱為 SEGIS,內容是 110 年 9 月台灣各縣市的人口統計,其中包含戶數(h_cnt)、人口數(p_cnt)、男性人口數(m_cnt)、女性人口數(f_cnt)。
data 資料夾 -> AS01 資料夾 -> 行政區人口統計_縣市_202109.csv
的這個檔案,取名為 df_pop
,並將前 3
列印出。這份資料中,### your code
<- read_csv("data/AS02/行政區人口統計_縣市_202109.csv")
df_pop %>% head(3)
df_pop
### result
#> # A tibble: 3 × 6
#> county_id county h_cnt p_cnt m_cnt f_cnt
#> <chr> <chr> <dbl> <dbl> <dbl> <dbl>
#> 1 65000 新北市 1620493 4017632 1961812 2055820
#> 2 63000 臺北市 1057327 2544720 1211361 1333359
#> 3 68000 桃園市 860144 2272812 1125649 1147163
#> # A tibble: 3 × 6
#> county_id county h_cnt p_cnt m_cnt f_cnt
#> <chr> <chr> <dbl> <dbl> <dbl> <dbl>
#> 1 65000 新北市 1620493 4017632 1961812 2055820
#> 2 63000 臺北市 1057327 2544720 1211361 1333359
#> 3 68000 桃園市 860144 2272812 1125649 1147163
df_pop
增加新欄位city
,若為六都則為”六都”,六都以外為
“非六都”,將結果存在 df_pop2
裡面後,印出前 10 列。if_else()
### your code
<- df_pop %>%
df_pop2 mutate(city = if_else(county %in% c("新北市", "臺北市", "桃園市", "臺中市", "高雄市", "臺南市"), "六都", "非六都"))
%>% head(10)
df_pop2
### result
#> # A tibble: 10 × 7
#> county_id county h_cnt p_cnt m_cnt f_cnt city
#> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <chr>
#> 1 65000 新北市 1620493 4017632 1961812 2055820 六都
#> 2 63000 臺北市 1057327 2544720 1211361 1333359 六都
#> 3 68000 桃園市 860144 2272812 1125649 1147163 六都
#> 4 66000 臺中市 1014864 2816393 1382499 1433894 六都
#> 5 67000 臺南市 709627 1866073 929345 936728 六都
#> 6 64000 高雄市 1128474 2751317 1356111 1395206 六都
#> 7 10002 宜蘭縣 174071 451422 227385 224037 非六都
#> 8 10004 新竹縣 209962 574512 293279 281233 非六都
#> 9 10005 苗栗縣 195208 539361 278012 261349 非六都
#> 10 10007 彰化縣 398859 1257992 639195 618797 非六都
#> # A tibble: 10 × 7
#> county_id county h_cnt p_cnt m_cnt f_cnt city
#> <chr> <chr> <dbl> <dbl> <dbl> <dbl> <chr>
#> 1 65000 新北市 1620493 4017632 1961812 2055820 六都
#> 2 63000 臺北市 1057327 2544720 1211361 1333359 六都
#> 3 68000 桃園市 860144 2272812 1125649 1147163 六都
#> 4 66000 臺中市 1014864 2816393 1382499 1433894 六都
#> 5 67000 臺南市 709627 1866073 929345 936728 六都
#> 6 64000 高雄市 1128474 2751317 1356111 1395206 六都
#> 7 10002 宜蘭縣 174071 451422 227385 224037 非六都
#> 8 10004 新竹縣 209962 574512 293279 281233 非六都
#> 9 10005 苗栗縣 195208 539361 278012 261349 非六都
#> 10 10007 彰化縣 398859 1257992 639195 618797 非六都
df_pop2
中,六都與非六都中有多少筆資料,並將結果依照資料數量由多到少排列### your code
%>% count(city, sort = T)
df_pop2
### result
#> # A tibble: 2 × 2
#> city n
#> <chr> <int>
#> 1 非六都 16
#> 2 六都 6
#> # A tibble: 2 × 2
#> city n
#> <chr> <int>
#> 1 非六都 16
#> 2 六都 6
county
, city
, h_cnt
,
p_cnt
4 個欄位,並將結果印出。### your code
%>%
df_pop2 filter((city == "六都" & h_cnt >= 1000000) | (city != "六都" & p_cnt < 300000)) %>%
select(county, city, h_cnt, p_cnt)
### result
#> # A tibble: 9 × 4
#> county city h_cnt p_cnt
#> <chr> <chr> <dbl> <dbl>
#> 1 新北市 六都 1620493 4017632
#> 2 臺北市 六都 1057327 2544720
#> 3 臺中市 六都 1014864 2816393
#> 4 高雄市 六都 1128474 2751317
#> 5 臺東縣 非六都 84102 213818
#> 6 澎湖縣 非六都 42245 106036
#> 7 嘉義市 非六都 101811 265002
#> 8 金門縣 非六都 42415 140856
#> 9 連江縣 非六都 3489 13429
#> # A tibble: 9 × 4
#> county city h_cnt p_cnt
#> <chr> <chr> <dbl> <dbl>
#> 1 新北市 六都 1620493 4017632
#> 2 臺北市 六都 1057327 2544720
#> 3 臺中市 六都 1014864 2816393
#> 4 高雄市 六都 1128474 2751317
#> 5 臺東縣 非六都 84102 213818
#> 6 澎湖縣 非六都 42245 106036
#> 7 嘉義市 非六都 101811 265002
#> 8 金門縣 非六都 42415 140856
#> 9 連江縣 非六都 3489 13429