作業目的: Know Your Data

這份作業希望能夠讓你練習:

  1. 讀取資料
  2. 處理編碼
  3. 輸出資料
  4. 利用管線運算子(%>%)
  5. 基本的資料操作

題目大部分都要求印出 tibble/dataframe,若你的資料是 tibble,直接印出即可,若是 dataframe,請印出前三列即可。

作業: Know Your Data

滿分共 100 分。

A. importing data and data manipulation - csv (50 分)

本題目利用內政部統計處的社會經濟資料服務平台所提供的資料,該平台有大量台灣的地理圖資與人口變數,之後找題目可以參考。我們使用的是 109 年第 4 季各縣市的結婚統計。

  1. data importing:請讀取請右方路徑的 csv 檔,路徑為 data 資料夾 -> Lab04 資料夾 -> 109Q4_county_marriage.csv,並取名為 df_109Q4_county_marriage。檔案讀進來後可能有亂碼,請任選課堂提到的亂碼處理方式(讀取前修改編碼、讀取設定參數、讀進後修改編碼),將檔案以正確編碼印出。若你是讀取前修改編碼,請用文字說明步驟,若你是設定參數或修改編碼,請在程式碼中用註解(#)說明你在做什麼!
### your code
library(tidyverse)
df_109Q4_county_marriage <- read_csv("data/Lab04/109Q4_county_marriage.csv")
# one by one 編碼轉換
df_109Q4_county_marriage %>% mutate(COUNTY_ID = iconv(COUNTY_ID, from = "BIG5", to = "UTF8"),
                                    COUNTY = iconv(COUNTY, from = "BIG5", to = "UTF8"),
                                    MARRY_CP_CNT = iconv(MARRY_CP_CNT, from = "BIG5", to = "UTF8"),
                                    MARRY_CNT = iconv(MARRY_CNT, from = "BIG5", to = "UTF8"),
                                    MARRY_M_CNT = iconv(MARRY_M_CNT, from = "BIG5", to = "UTF8"),
                                    MARRY_F_CNT = iconv(MARRY_F_CNT, from = "BIG5", to = "UTF8"),
                                    INFO_TIME = iconv(INFO_TIME, from = "BIG5", to = "UTF8"))

# all in one 編碼轉換
df_109Q4_county_marriage %>% mutate(across(where(is.character), ~iconv(.,from = "BIG5", to = "UTF8")))
#> # A tibble: 23 x 7
#>    COUNTY_ID COUNTY  MARRY_CP_CNT MARRY_CNT  MARRY_M_CNT  MARRY_F_CNT  INFO_TIME
#>    <chr>     <chr>   <chr>        <chr>      <chr>        <chr>        <chr>    
#>  1 縣市代碼  縣市名稱… 結婚對數     結婚登記中外(含大… 結婚登記中外(含大陸港… 結婚登記中外(含大陸港… 資料時間 
#>  2 65000     新北市  6529         580        189          391          109Y4S   
#>  3 63000     臺北市  3856         422        207          215          109Y4S   
#>  4 68000     桃園市  3986         370        107          263          109Y4S   
#>  5 66000     臺中市  4837         381        130          251          109Y4S   
#>  6 67000     臺南市  2706         185        57           128          109Y4S   
#>  7 64000     高雄市  4139         343        112          231          109Y4S   
#>  8 10002     宜蘭縣  725          62         11           51           109Y4S   
#>  9 10004     新竹縣  1003         71         13           58           109Y4S   
#> 10 10005     苗栗縣  859          75         19           56           109Y4S   
#> # … with 13 more rows
#> # A tibble: 23 x 7
#>    COUNTY_ID COUNTY  MARRY_CP_CNT MARRY_CNT  MARRY_M_CNT  MARRY_F_CNT  INFO_TIME
#>    <chr>     <chr>   <chr>        <chr>      <chr>        <chr>        <chr>    
#>  1 縣市代碼  縣市名稱… 結婚對數     結婚登記中外(含大… 結婚登記中外(含大陸港… 結婚登記中外(含大陸港… 資料時間 
#>  2 65000     新北市  6529         580        189          391          109Y4S   
#>  3 63000     臺北市  3856         422        207          215          109Y4S   
#>  4 68000     桃園市  3986         370        107          263          109Y4S   
#>  5 66000     臺中市  4837         381        130          251          109Y4S   
#>  6 67000     臺南市  2706         185        57           128          109Y4S   
#>  7 64000     高雄市  4139         343        112          231          109Y4S   
#>  8 10002     宜蘭縣  725          62         11           51           109Y4S   
#>  9 10004     新竹縣  1003         71         13           58           109Y4S   
#> 10 10005     苗栗縣  859          75         19           56           109Y4S   
#> # … with 13 more rows
  1. slice() and mutate():這份資料有七個 column,而且第一列是中文欄位名稱。承上題,請先修改編碼,又因為後續計算需要將幾個欄位轉成數值,所以請將第一列踢掉,接著將結婚對數, 結婚登記中外聯姻人數, 結婚登記中外聯姻男性人數, 結婚登記中外聯姻女性人數character 變成 integer,最後將結果儲存在 df_109Q4_county_marriage_clean,並印出 df_109Q4_county_marriage_clean(欄位名稱是英文的沒錯)
### your code

# one by one
df_109Q4_county_marriage_clean <- df_109Q4_county_marriage %>% 
  mutate(COUNTY_ID = iconv(COUNTY_ID, from = "BIG5", to = "UTF8"),
         COUNTY = iconv(COUNTY, from = "BIG5", to = "UTF8"),
         MARRY_CP_CNT = iconv(MARRY_CP_CNT, from = "BIG5", to = "UTF8"),
         MARRY_CNT = iconv(MARRY_CNT, from = "BIG5", to = "UTF8"),
         MARRY_M_CNT = iconv(MARRY_M_CNT, from = "BIG5", to = "UTF8"),
         MARRY_F_CNT = iconv(MARRY_F_CNT, from = "BIG5", to = "UTF8"),
         INFO_TIME = iconv(INFO_TIME, from = "BIG5", to = "UTF8")) %>%
  slice(-1) %>% mutate(MARRY_CP_CNT = as.integer(MARRY_CP_CNT),
                       MARRY_CNT = as.integer(MARRY_CNT),
                       MARRY_M_CNT = as.integer(MARRY_M_CNT),
                       MARRY_F_CNT = as.integer(MARRY_F_CNT))

# all in once
df_109Q4_county_marriage_clean <- df_109Q4_county_marriage %>% 
  mutate(across(where(is.character), ~iconv(.,from = "BIG5", to = "UTF8"))) %>%
  slice(-1) %>% mutate(across(matches("MARRY"), ~as.integer(.)))

df_109Q4_county_marriage_clean
#> # A tibble: 22 x 7
#>    COUNTY_ID COUNTY MARRY_CP_CNT MARRY_CNT MARRY_M_CNT MARRY_F_CNT INFO_TIME
#>    <chr>     <chr>         <int>     <int>       <int>       <int> <chr>    
#>  1 65000     新北市         6529       580         189         391 109Y4S   
#>  2 63000     臺北市         3856       422         207         215 109Y4S   
#>  3 68000     桃園市         3986       370         107         263 109Y4S   
#>  4 66000     臺中市         4837       381         130         251 109Y4S   
#>  5 67000     臺南市         2706       185          57         128 109Y4S   
#>  6 64000     高雄市         4139       343         112         231 109Y4S   
#>  7 10002     宜蘭縣          725        62          11          51 109Y4S   
#>  8 10004     新竹縣         1003        71          13          58 109Y4S   
#>  9 10005     苗栗縣          859        75          19          56 109Y4S   
#> 10 10007     彰化縣         1882       161          32         129 109Y4S   
#> # … with 12 more rows
  1. arrange() and slice():請利用 df_109Q4_county_marriage_clean,篩選出 109 Q4 結婚對數最多的縣市,最後給我縣市代碼、縣市名稱、結婚對數的 tibble/dataframe
### your code

# using arrange() and row_number()
df_109Q4_county_marriage_clean %>%
  arrange(desc(MARRY_CP_CNT)) %>% 
  filter(row_number() == 1) %>%
  select(COUNTY_ID, COUNTY, MARRY_CP_CNT)

# using arrange() and slice()
df_109Q4_county_marriage_clean %>%
  arrange(desc(MARRY_CP_CNT)) %>% 
  slice(1) %>%
  select(COUNTY_ID, COUNTY, MARRY_CP_CNT)

# using slice_max()
df_109Q4_county_marriage_clean %>%
  slice_max(MARRY_CP_CNT, n = 1) %>%
  select(COUNTY_ID, COUNTY, MARRY_CP_CNT)

# using top_n()
df_109Q4_county_marriage_clean %>%
  top_n(MARRY_CP_CNT, n = 1) %>%
  select(COUNTY_ID, COUNTY, MARRY_CP_CNT)
#> # A tibble: 1 x 3
#>   COUNTY_ID COUNTY MARRY_CP_CNT
#>   <chr>     <chr>         <int>
#> 1 65000     新北市         6529
#> # A tibble: 1 x 3
#>   COUNTY_ID COUNTY MARRY_CP_CNT
#>   <chr>     <chr>         <int>
#> 1 65000     新北市         6529
#> # A tibble: 1 x 3
#>   COUNTY_ID COUNTY MARRY_CP_CNT
#>   <chr>     <chr>         <int>
#> 1 65000     新北市         6529
#> # A tibble: 1 x 3
#>   COUNTY_ID COUNTY MARRY_CP_CNT
#>   <chr>     <chr>         <int>
#> 1 65000     新北市         6529
  1. filer() and arrange():請利用 df_109Q4_county_marriage_clean,先篩選出台灣六都,接著按照結婚對數由大到小排列,最後給我包含所有欄位的 tibble/dataframe
### your code

# using %in%
df_109Q4_county_marriage_clean %>%
  filter(COUNTY %in% c("臺北市", "新北市", "桃園市", "臺中市", "臺南市", "高雄市")) %>%
  arrange(desc(MARRY_CP_CNT))

# using str_detect()
df_109Q4_county_marriage_clean %>%
  filter(str_detect(COUNTY, "北市|中市|桃園|高雄|南市")) %>%
  arrange(desc(MARRY_CP_CNT))
#> # A tibble: 6 x 7
#>   COUNTY_ID COUNTY MARRY_CP_CNT MARRY_CNT MARRY_M_CNT MARRY_F_CNT INFO_TIME
#>   <chr>     <chr>         <int>     <int>       <int>       <int> <chr>    
#> 1 65000     新北市         6529       580         189         391 109Y4S   
#> 2 66000     臺中市         4837       381         130         251 109Y4S   
#> 3 64000     高雄市         4139       343         112         231 109Y4S   
#> 4 68000     桃園市         3986       370         107         263 109Y4S   
#> 5 63000     臺北市         3856       422         207         215 109Y4S   
#> 6 67000     臺南市         2706       185          57         128 109Y4S   
#> # A tibble: 6 x 7
#>   COUNTY_ID COUNTY MARRY_CP_CNT MARRY_CNT MARRY_M_CNT MARRY_F_CNT INFO_TIME
#>   <chr>     <chr>         <int>     <int>       <int>       <int> <chr>    
#> 1 65000     新北市         6529       580         189         391 109Y4S   
#> 2 66000     臺中市         4837       381         130         251 109Y4S   
#> 3 64000     高雄市         4139       343         112         231 109Y4S   
#> 4 68000     桃園市         3986       370         107         263 109Y4S   
#> 5 63000     臺北市         3856       422         207         215 109Y4S   
#> 6 67000     臺南市         2706       185          57         128 109Y4S
  1. mutate() and arrange() and filter():請利用 df_109Q4_county_marriage_clean,先增加一個計算各縣市的結婚登記中外聯姻人數中,女性人數佔比的欄位,接著再增加一個欄位計算女性人數佔比的排名(最高為 1),最後請篩選出聯姻人數女性比例前三高的列,並給我縣市代碼、縣市名稱、結婚登記中外聯姻人數、聯姻女性人數、聯姻女性人數比例、聯姻女性比例排名的 tibble/dataframe

提示:你可以查一下row_number() 在做些什麼

### your code
df_109Q4_county_marriage_clean %>%
  mutate(MARRY_F_CNT_PER = MARRY_F_CNT/MARRY_CNT) %>%
  arrange(desc(MARRY_F_CNT_PER)) %>% mutate(MARRY_F_CNT_RANK = row_number()) %>%
  filter(MARRY_F_CNT_RANK %in% c(1:3)) %>%
  select(COUNTY_ID, COUNTY, MARRY_CNT, MARRY_F_CNT, MARRY_F_CNT_PER, MARRY_F_CNT_RANK)
#> # A tibble: 3 x 6
#>   COUNTY_ID COUNTY MARRY_CNT MARRY_F_CNT MARRY_F_CNT_PER MARRY_F_CNT_RANK
#>   <chr>     <chr>      <int>       <int>           <dbl>            <int>
#> 1 10009     雲林縣        78          70           0.897                1
#> 2 10002     宜蘭縣        62          51           0.823                2
#> 3 10004     新竹縣        71          58           0.817                3

B. importing data and data manipulation - excel (50 分)

本題目利用台大碩士班考試入學報名人數資料,原始檔案有 PDF 與 Excel,這邊選擇 Excel 檔案,讓你練習讀取 Excel 檔案以及資料操作。

  1. data importing:請讀取右方路徑的 Excel 檔,路徑為 data 資料夾 -> Lab04 資料夾 -> 台大_101學年度碩士班考試招生錄取情況一覽表.xls,並取名為 df_ntu_exam,我只想要口試一直到本校最低門檻的欄位。另外提醒一下,這個檔案是 .xls,也就是舊版的 excel 檔案,不是現在較常見的 .xlsx 喔!
### your code
library(readxl)
df_ntu_exam <- readxl::read_excel("data/Lab04/台大_101學年度碩士班考試招生錄取情況一覽表.xls", range = "A1:T225")
df_ntu_exam
#> # A tibble: 224 x 20
#>    口試    簡章代碼 口試比例 系所別 組別  報考人數 ...7  招生名額 ...9  錄取人數
#>    <chr>   <chr>       <dbl> <chr>  <chr> <chr>    <chr> <chr>    <chr> <chr>   
#>  1  <NA>   <NA>        NA    <NA>   <NA>  一般     在職  一般     在職  一般    
#>  2  <NA>   <NA>        NA    總計   <NA>  18474    <NA>  1935     <NA>  1908    
#>  3  <NA>   <NA>        NA    合計(全部… <NA>  18372    102   1860     75    1876    
#>  4  <NA>   <NA>        NA    小計(無口… <NA>  11309    26    1251     33    1258    
#>  5  <NA>   <NA>        NA    小計(有口… <NA>  7063     76    609      42    618     
#>  6  <NA>   101         NA    中國文學系… <NA>  175      <NA>  17       <NA>  17      
#>  7 "●\u00… 102          0.25 外國語文學… <NA>  73       <NA>  10       <NA>  10      
#>  8  <NA>   103         NA    歷史學系… <NA>  127      <NA>  18       <NA>  20      
#>  9  <NA>   104         NA    哲學系 甲組(主… 6        <NA>  3        <NA>  2       
#> 10  <NA>   105         NA    哲學系 乙組(主… 23       <NA>  3        <NA>  3       
#> # … with 214 more rows, and 10 more variables: ...11 <chr>, 錄取情況 <chr>,
#> #   ...13 <chr>, 錄取最低分數 <chr>, ...15 <chr>, 錄取率 <chr>, ...17 <chr>,
#> #   備取人數 <chr>, ...19 <chr>, 本校最低門檻 <dbl>
  1. select():台大考試入學的碩士生分為一般組與在職組,請幫我拿掉在職相關的欄位。另外,也請幫我拿掉口試相關的欄位,完成後印出 tibble/dataframe

提示:你可以先在 Excel 當中打開原始檔案看長相

### your code

# check columns
df_ntu_exam %>% glimpse()

# one by one
df_ntu_exam %>% select(-c(`...7`,`...9`,`...11`,`...13`,`...15`,`...17`,`...19`)) %>% 
  select(-c(`口試`,`口試比例`))

# all in once
df_ntu_exam %>% select(-c(7,9,11,13,15,17,19)) %>% select(-matches("口試"))
#> Rows: 224
#> Columns: 20
#> $ 口試         <chr> NA, NA, NA, NA, NA, NA, "●\u0098\u0098\u0098\u0098\u0098\u0…
#> $ 簡章代碼     <chr> NA, NA, NA, NA, NA, "101", "102", "103", "104", "105", "106",…
#> $ 口試比例     <dbl> NA, NA, NA, NA, NA, NA, 0.25, NA, NA, NA, 0.30, NA, 0.40, NA,…
#> $ 系所別       <chr> NA, "總計", "合計(全部系所組)", "小計(無口試系所組)", "小計(有口試系所組)", "中國文學系", …
#> $ 組別         <chr> NA, NA, NA, NA, NA, NA, NA, NA, "甲組(主修東方哲學)", "乙組(主修西方哲學)",…
#> $ 報考人數     <chr> "一般", "18474", "18372", "11309", "7063", "175", "73", "127", …
#> $ ...7         <chr> "在職", NA, "102", "26", "76", NA, NA, NA, NA, NA, NA, NA, …
#> $ 招生名額     <chr> "一般", "1935", "1860", "1251", "609", "17", "10", "18", "3", "…
#> $ ...9         <chr> "在職", NA, "75", "33", "42", NA, NA, NA, NA, NA, NA, NA, N…
#> $ 錄取人數     <chr> "一般", "1908", "1876", "1258", "618", "17", "10", "20", "2", "…
#> $ ...11        <chr> "在職", NA, "32", "8", "24", NA, NA, NA, NA, NA, NA, NA, NA…
#> $ 錄取情況     <chr> "一般", "缺額29", "增額14", "增額7", "增額7", NA, NA, "同分2", "缺額1", NA,…
#> $ ...13        <chr> "在職", NA, "缺額43", "缺額25", "缺額18", NA, NA, NA, NA, NA, NA,…
#> $ 錄取最低分數 <chr> "一般", NA, NA, NA, NA, "230", "221.66", "285", "202", "201", "33…
#> $ ...15        <chr> "在職", NA, NA, NA, NA, "0", NA, "0", "0", "0", NA, "0", NA…
#> $ 錄取率       <chr> "一般", "0.10328028580708022", "0.1021119094273895", "0.111238…
#> $ ...17        <chr> "在職", NA, "0.31372549019607843", "0.30769230769230771", "…
#> $ 備取人數     <chr> "一般", "957", "950", "677", "273", "0", "3", "0", "0", "0", "1…
#> $ ...19        <chr> "在職", NA, "7", "0", "7", NA, NA, NA, NA, NA, NA, NA, NA, …
#> $ 本校最低門檻 <dbl> NA, NA, NA, NA, NA, 160, 140, 240, 160, 160, 200, 200, 160, 120…
#> # A tibble: 224 x 11
#>    簡章代碼 系所別 組別  報考人數 招生名額 錄取人數 錄取情況 錄取最低分數 錄取率
#>    <chr>    <chr>  <chr> <chr>    <chr>    <chr>    <chr>    <chr>        <chr> 
#>  1 <NA>     <NA>   <NA>  一般     一般     一般     一般     一般         一般  
#>  2 <NA>     總計   <NA>  18474    1935     1908     缺額29   <NA>         0.103…
#>  3 <NA>     合計(全部… <NA>  18372    1860     1876     增額14   <NA>         0.102…
#>  4 <NA>     小計(無口… <NA>  11309    1251     1258     增額7    <NA>         0.111…
#>  5 <NA>     小計(有口… <NA>  7063     609      618      增額7    <NA>         0.087…
#>  6 101      中國文學系… <NA>  175      17       17       <NA>     230          0.097…
#>  7 102      外國語文學… <NA>  73       10       10       <NA>     221.66       0.136…
#>  8 103      歷史學系… <NA>  127      18       20       同分2    285          0.157…
#>  9 104      哲學系 甲組(主… 6        3        2        缺額1    202          0.333…
#> 10 105      哲學系 乙組(主… 23       3        3        <NA>     201          0.130…
#> # … with 214 more rows, and 2 more variables: 備取人數 <chr>,
#> #   本校最低門檻 <dbl>
#> # A tibble: 224 x 11
#>    簡章代碼 系所別 組別  報考人數 招生名額 錄取人數 錄取情況 錄取最低分數 錄取率
#>    <chr>    <chr>  <chr> <chr>    <chr>    <chr>    <chr>    <chr>        <chr> 
#>  1 <NA>     <NA>   <NA>  一般     一般     一般     一般     一般         一般  
#>  2 <NA>     總計   <NA>  18474    1935     1908     缺額29   <NA>         0.103…
#>  3 <NA>     合計(全部… <NA>  18372    1860     1876     增額14   <NA>         0.102…
#>  4 <NA>     小計(無口… <NA>  11309    1251     1258     增額7    <NA>         0.111…
#>  5 <NA>     小計(有口… <NA>  7063     609      618      增額7    <NA>         0.087…
#>  6 101      中國文學系… <NA>  175      17       17       <NA>     230          0.097…
#>  7 102      外國語文學… <NA>  73       10       10       <NA>     221.66       0.136…
#>  8 103      歷史學系… <NA>  127      18       20       同分2    285          0.157…
#>  9 104      哲學系 甲組(主… 6        3        2        缺額1    202          0.333…
#> 10 105      哲學系 乙組(主… 23       3        3        <NA>     201          0.130…
#> # … with 214 more rows, and 2 more variables: 備取人數 <chr>,
#> #   本校最低門檻 <dbl>
  1. slice() or filter() or [,]:觀察原始檔案可以發現,資料中前幾列包含總計、合計、小計,因為我只想看各系所的招生情況,所以請先依照上題所說,先拿掉在職口試相關的欄位,接著幫我抓取從中國文學系開始的資料,完成後將結果儲存在 df_ntu_exam_clean,最後將 df_ntu_exam_clean 印出
### your code
df_ntu_exam_clean <- df_ntu_exam %>% 
  select(-c(`...7`,`...9`,`...11`,`...13`,`...15`,`...17`,`...19`)) %>% 
  select(-c(`口試`,`口試比例`)) %>%
  slice(-c(1:5))
df_ntu_exam_clean
#> # A tibble: 219 x 11
#>    簡章代碼 系所別 組別  報考人數 招生名額 錄取人數 錄取情況 錄取最低分數 錄取率
#>    <chr>    <chr>  <chr> <chr>    <chr>    <chr>    <chr>    <chr>        <chr> 
#>  1 101      中國文學系… <NA>  175      17       17       <NA>     230          0.097…
#>  2 102      外國語文學… <NA>  73       10       10       <NA>     221.66       0.136…
#>  3 103      歷史學系… <NA>  127      18       20       同分2    285          0.157…
#>  4 104      哲學系 甲組(主… 6        3        2        缺額1    202          0.333…
#>  5 105      哲學系 乙組(主… 23       3        3        <NA>     201          0.130…
#>  6 106      人類學系… <NA>  29       8        8        <NA>     334.6000000… 0.275…
#>  7 107      圖書資訊學… <NA>  42       9        9        <NA>     316          0.214…
#>  8 108      日本語文學… <NA>  54       12       12       <NA>     263.9700000… 0.222…
#>  9 109      戲劇學系… 甲組(主… 30       9        7        缺額2    182          0.233…
#> 10 110      戲劇學系… 乙組(劇… 14       3        1        缺額2    233.66       0.071…
#> # … with 209 more rows, and 2 more variables: 備取人數 <chr>,
#> #   本校最低門檻 <dbl>
  1. filter():觀察原始資料後發現,有些系組的報考人數的值為空,請利用 df_ntu_exam_clean,幫我找出報考人數值為空的資料有哪些,完成後印出 tibble/dataframe

提示

  1. Excel 的空值讀進 R 之後會長什麼樣子
  2. 你很有可能會用到 is.na() 這個函數,如果 NA 丟進去,會得到 TRUE,以外會得到 FALSE
  3. filter() 的本質就是篩選符合特定條件的列,所以理想上你也可以篩選出報考人數的值為空的列
### your code
df_ntu_exam_clean %>%
  filter(is.na(`報考人數`))
#> # A tibble: 12 x 11
#>    簡章代碼 系所別 組別  報考人數 招生名額 錄取人數 錄取情況 錄取最低分數 錄取率
#>    <chr>    <chr>  <chr> <chr>    <chr>    <chr>    <chr>    <chr>        <chr> 
#>  1 411      醫學檢驗暨… (在職)… <NA>     <NA>     <NA>     <NA>     <NA>         <NA>  
#>  2 502      土木工程學… 大地工程… <NA>     <NA>     <NA>     <NA>     <NA>         <NA>  
#>  3 504      土木工程學… 結構工程… <NA>     <NA>     <NA>     <NA>     <NA>         <NA>  
#>  4 506      土木工程學… 水利工程… <NA>     <NA>     <NA>     <NA>     <NA>         <NA>  
#>  5 710      國際企業學… 丁組  <NA>     <NA>     <NA>     <NA>     <NA>         <NA>  
#>  6 803A     職業醫學與… 甲組  <NA>     6        7        <NA>     202.3000000… <NA>  
#>  7 803B     環境衛生研… 甲組  <NA>     6        7        <NA>     201.8000000… <NA>  
#>  8 809      公共衛生碩… 甲組(生… <NA>     <NA>     <NA>     <NA>     <NA>         <NA>  
#>  9 810      公共衛生碩… 乙組(流… <NA>     <NA>     <NA>     <NA>     <NA>         <NA>  
#> 10 811      公共衛生碩… 丙組(社… <NA>     <NA>     <NA>     <NA>     <NA>         <NA>  
#> 11 812      公共衛生碩… 丁組(健… <NA>     <NA>     <NA>     <NA>     <NA>         <NA>  
#> 12 813      公共衛生碩… 戊組(環… <NA>     <NA>     <NA>     <NA>     <NA>         <NA>  
#> # … with 2 more variables: 備取人數 <chr>, 本校最低門檻 <dbl>
  1. data exporting:請幫我將 df_ntu_exam_clean 輸出成 .csv 到 Lab04 資料夾當中,請取名為 df_ntu_exam_clean.csv
### your code
df_ntu_exam %>% select(-c(`...7`,`...9`,`...11`,`...13`,`...15`,`...17`,`...19`)) %>% 
  select(-c(`口試`,`口試比例`)) %>%
  slice(-c(1:5)) %>%
  write_csv("data/Lab04/df_ntu_exam_clean.csv")
  1. filter() and select():請幫我利用 df_ntu_exam_clean,篩選出 “新聞研究所” 的資料感嘆一下 101 年的榮景,最後印出新聞所那列的系所、報考人數、招生名額、錄取人數、錄取率的 tibble/dataframe
### your code
df_ntu_exam_clean %>%
  filter(系所別 == "新聞研究所") %>%
  select(`系所別`,`報考人數`,`招生名額`,`錄取人數`,`錄取率`)
#> # A tibble: 1 x 5
#>   系所別     報考人數 招生名額 錄取人數 錄取率              
#>   <chr>      <chr>    <chr>    <chr>    <chr>               
#> 1 新聞研究所 275      13       14       0.050909090909090911