# 周次:w
# 任務:認識常用內建函數
# 姓名:陳靜君
# 日期:xxxx年xx月xx日
## 題組一 數值向量函數
# 檢視r內建資料集
data()
# 叫出women資料集(美國女性的平均身高、體重)
data(women)
# 檢視資料集的基本資料
head(women)
##   height weight
## 1     58    115
## 2     59    117
## 3     60    120
## 4     61    123
## 5     62    126
## 6     63    129
# 建立一個物件bmi,計算美國女性的bmi
bmi <- women$weight / (women$height / 100)^2
bmi
##  [1] 341.8549 336.1103 333.3333 330.5563 327.7836 325.0189 322.2656 319.5266
##  [9] 319.1001 316.3288 315.7439 315.0599 314.2857 315.4136 316.3580
# 1. 取bmi整數,且無條件刪去法
floor(bmi)
##  [1] 341 336 333 330 327 325 322 319 319 316 315 315 314 315 316
# 2. 取bmi整數,且無條件進入法
ceiling(bmi)
##  [1] 342 337 334 331 328 326 323 320 320 317 316 316 315 316 317
# 3. 取bmi至小數點第2位,且四捨五入
round(bmi,digits = 2)
##  [1] 341.85 336.11 333.33 330.56 327.78 325.02 322.27 319.53 319.10 316.33
## [11] 315.74 315.06 314.29 315.41 316.36
# 4. 請將iris資料集的花瓣長度,取整數並四捨五入
data(iris)
names(iris)
## [1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"
round(iris$Petal.Length,digits = 0)
##   [1] 1 1 1 2 1 2 1 2 1 2 2 2 1 1 1 2 1 1 2 2 2 2 1 2 2 2 2 2 1 2 2 2 2 1 2 1 1
##  [38] 1 1 2 1 1 1 2 2 1 2 1 2 1 5 4 5 4 5 4 5 3 5 4 4 4 4 5 4 4 4 4 4 4 5 4 5 5
##  [75] 4 4 5 5 4 4 4 4 4 5 4 4 5 4 4 4 4 5 4 3 4 4 4 4 3 4 6 5 6 6 6 7 4 6 6 6 5
## [112] 5 6 5 5 5 6 7 7 5 6 5 7 5 6 6 5 5 6 6 6 6 6 5 6 6 6 6 5 5 6 5 5 6 6 5 5 5
## [149] 5 5
## 題組二 文字向量函數
# 已建立一個物件leadline為新聞標題、lead為新聞導言
headline <- "【鮭魚改名潮】「張鮭魚之夢」改不回來 李來希喊救孩子:大人高抬貴手"
lead <- c("台灣近日掀起「鮭魚之亂」","台中一位男大生為了壽司店優惠活動",
          "把自己的名字改成「張鮭魚之夢」", "未料改完名後", "男大生發現悲劇已改了3次名",
          "讓他崩潰直呼划不來", "對此","全國公務人員協會前理事長李來希感嘆",
          "「價值觀錯亂下的羔羊」","希望主持政務的大人高抬貴手","讓他回復原狀")
headline
## [1] "【鮭魚改名潮】「張鮭魚之夢」改不回來 李來希喊救孩子:大人高抬貴手"
lead
##  [1] "台灣近日掀起「鮭魚之亂」"           "台中一位男大生為了壽司店優惠活動"  
##  [3] "把自己的名字改成「張鮭魚之夢」"     "未料改完名後"                      
##  [5] "男大生發現悲劇已改了3次名"          "讓他崩潰直呼划不來"                
##  [7] "對此"                               "全國公務人員協會前理事長李來希感嘆"
##  [9] "「價值觀錯亂下的羔羊」"             "希望主持政務的大人高抬貴手"        
## [11] "讓他回復原狀"
# 運用substr函數,擷取標題中的「張鮭魚之夢」5個字
data <- substr(headline,start = 8,stop = 14)
data
## [1] "「張鮭魚之夢」"
# 運用grep函數,搜尋導言中出現幾次鮭魚
salmon <- grep(lead,pattern = "鮭魚")
salmon
## [1] 1 3
length(salmon)
## [1] 2
# 請將導言中,出現鮭魚的句子篩選出來
lead[grep(lead,pattern = "鮭魚")]
## [1] "台灣近日掀起「鮭魚之亂」"       "把自己的名字改成「張鮭魚之夢」"
# 運用sub函數,將導言中的「男大生」替換為「軍校生」
data <- sub(lead,pattern ="男大生",
            replacement = "軍校生")
data
##  [1] "台灣近日掀起「鮭魚之亂」"           "台中一位軍校生為了壽司店優惠活動"  
##  [3] "把自己的名字改成「張鮭魚之夢」"     "未料改完名後"                      
##  [5] "軍校生發現悲劇已改了3次名"          "讓他崩潰直呼划不來"                
##  [7] "對此"                               "全國公務人員協會前理事長李來希感嘆"
##  [9] "「價值觀錯亂下的羔羊」"             "希望主持政務的大人高抬貴手"        
## [11] "讓他回復原狀"
# 運用paste函數,將導言的第一句話和標題連結起來,連結的符號為「!!」
paste(lead[1],headline,sep="!!")
## [1] "台灣近日掀起「鮭魚之亂」!!【鮭魚改名潮】「張鮭魚之夢」改不回來 李來希喊救孩子:大人高抬貴手"
# 運用 paste0函數,將導言的第一句話和標題連結起來
paste0(lead[1],headline)
## [1] "台灣近日掀起「鮭魚之亂」【鮭魚改名潮】「張鮭魚之夢」改不回來 李來希喊救孩子:大人高抬貴手"
## 題組三 描述統計函數
# 運用unique函數,找出iris資料集有多少種不同的花萼長度
length(unique(iris$Sepal.Length))
## [1] 35
# 運用mean函數,算出iris花萼寬度的平均
mean(iris$Sepal.Width)
## [1] 3.057333
# 運用sd函數,算出iris花萼寬度的標準差
sd(iris$Sepal.Width)
## [1] 0.4358663
# 運用median函數,找出iris花萼寬度的中位數
median(iris$Sepal.Width)
## [1] 3
# 運用max, min, range函數,找出iris花萼寬度的最大值與最小值的範圍
max(iris$Sepal.Width)
## [1] 4.4
min(iris$Sepal.Width)
## [1] 2
range(iris$Sepal.Width)
## [1] 2.0 4.4
range(iris$Sepal.Width,na.rm = T)
## [1] 2.0 4.4
# 運用sum函數,將所有的花辮長度加總
sum(iris$Petal.Length)
## [1] 563.7
# 周次:w
# 任務:資料輸入與輸出
# 姓名:陳靜君
# 日期:xxxx年xx月xx日
# ### 常見資料資料平台
# 政府資料開放平台:https://data.gov.tw/
# 臺北市資料大平臺:https://data.taipei/#/
# 內政資料開放平台:https://data.moi.gov.tw/MoiOD/default/Index.aspx
# ### 常見資料庫
# 學術調查研究資料庫:https://srda.sinica.edu.tw/index.php
# 傳播調查資料庫:http://www.crctaiwan.nctu.edu.tw/


### 題組一 csv檔資料輸入與輸出
# 請至政府資料開放平台下載「健保特約機構口罩剩餘數量明細清單」的csv檔
# 網址:https://data.gov.tw/dataset/116285
# 將輸入的csv檔案命名為maskdata
# install.packages("readr")
library(readr)
maskdata <- read.csv("maskdata.csv")
# 或是直接檔案的存取網路位址
maskdata <- read_csv("https://data.nhi.gov.tw/Datasets/Download.ashx?rid=A21030000I-D50001-001&l=https://data.nhi.gov.tw/resource/mask/maskdata.csv")
## 
## ── Column specification ────────────────────────────────────────────────────────
## cols(
##   醫事機構代碼 = col_character(),
##   醫事機構名稱 = col_character(),
##   醫事機構地址 = col_character(),
##   醫事機構電話 = col_character(),
##   成人口罩剩餘數 = col_double(),
##   兒童口罩剩餘數 = col_double(),
##   來源資料時間 = col_character()
## )
# 檢視資料
# View(maskdata)
names(maskdata)
## [1] "醫事機構代碼"   "醫事機構名稱"   "醫事機構地址"   "醫事機構電話"  
## [5] "成人口罩剩餘數" "兒童口罩剩餘數" "來源資料時間"
nrow(maskdata)
## [1] 5121
summary(maskdata)
##  醫事機構代碼       醫事機構名稱       醫事機構地址       醫事機構電話      
##  Length:5121        Length:5121        Length:5121        Length:5121       
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##  成人口罩剩餘數  兒童口罩剩餘數  來源資料時間      
##  Min.   :    0   Min.   :    0   Length:5121       
##  1st Qu.:  680   1st Qu.:  650   Class :character  
##  Median : 1370   Median : 1040   Mode  :character  
##  Mean   : 1592   Mean   : 1010                     
##  3rd Qu.: 1990   3rd Qu.: 1370                     
##  Max.   :16000   Max.   :20320
# 2. 建一個機構名稱、地址、成人口罩、小孩口罩的新檔案,
# ,命名為mask1並輸出至目前的資料夾

# 先命名、並篩選需要的欄位


# 3. 檢視成人口罩和兒童口罩數量的多寡?


# 4. 超過5000個成人口罩的機構有哪些? 物件名稱為mask5000


# 5. 將超過5000個成人口罩的機構輸出為csv檔,命名為mask5000

### 題組二 txt檔資料輸入與輸出
## 一、當資料為表格型態(方法與csv方式相同)
# 請至政府資料開放平台下載「國軍臺中總醫院就醫收費標準表」的txt檔
# 網址:https://data.gov.tw/dataset/37783
# 1. 將輸入的txt檔案命名為hospital

# 2. 請將現役軍人、替代役、軍眷的收費標準輸出為txt檔
# 並命名為army


## 二、當資料為非表格型態
# 1. 下載youtube"2020國慶演說"影片的cc字幕,命名為ytword
# 影片網址:https://www.youtube.com/watch?v=87frdlm9ujo
# 利用Youtube 字幕下載器(https://toolbxs.com/zh-TW/downloader/youtube_subtitle)


# 2. 請問演講中分別提及中華民國、台灣幾次?


# 3. 請問演講中如何談中華民國、台灣?


# 4. 請將提及中華民國、台灣的句子輸出為txt檔,檔名為roctw


### 題組三 sav檔(spss的檔案)資料輸入與輸出
# 請至台灣傳播資料庫下載「2019年調查」的sav檔
# 網址:https://data.gov.tw/dataset/116285
# 1. 將輸入的sav檔案命名為tcs2019
# install.packages("sjlabelled")


# 2. 檢視資料


# 當資料較大時,建議使用sjPlot套件
#安裝sjPlot套件家族
# 上網檢視cran檔: https://cran.r-project.org/web/packages/sjPlot/sjPlot.pdf
# install.packages("sjPlot")


# 3. 篩選出變數:性別(a1)、追劇上癮(g5.8,g5.9,g5.14)、
# 電玩上癮(j2.1,j2.2,j2.3),另存為sav檔,並命名為com


# 介紹好用的套件rio
# https://cran.r-project.org/web/packages/rio/rio.pdf
# 參考https://blog.gtwang.org/r/rio-package-import-export-convert-data-files-tutorial/
# install.packages("rio") # install_formats()


### 題組四 JSON檔資料輸入與輸出
# 請至政府資料開放平台下載「年度國內主要經濟指標」的json檔
# 網址:https://data.gov.tw/dataset/130489
# 1. 將輸入的json檔案變成資料框,並命名為eco
# 參考https://blog.gtwang.org/r/jsonlite-json-format-parser-generator-tutorial/
# https://cran.r-project.org/web/packages/jsonlite/jsonlite.pdf
# install.packages("jsonlite")


# 2. 篩選第1-5,16-17欄,輸出為json檔,命名為eco1