# 周次:w9
# 任務:資料輸入與輸出
# 姓名:廖呈祐
# 日期:2021年03月31日
## 題組二 文字向量函數
# 已建立一個物件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="鮭魚")
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資料集有多少種不同的花萼長度
type <- unique(iris$Sepal.Length)
type
## [1] 5.1 4.9 4.7 4.6 5.0 5.4 4.4 4.8 4.3 5.8 5.7 5.2 5.5 4.5 5.3 7.0 6.4 6.9 6.5
## [20] 6.3 6.6 5.9 6.0 6.1 5.6 6.7 6.2 6.8 7.1 7.6 7.3 7.2 7.7 7.4 7.9
length(type)
## [1] 35
#length(unique(iris$Sepal.Length))
# 運用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, na.rm = T)#排除遺漏直
## [1] 2.0 4.4
# 運用sum函數,將所有的花辮長度加總
sum(iris$Petal.Length)
## [1] 563.7
# ### 常見資料資料平台
# 政府資料開放平台: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("tidyverse")
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] 5143
# 2. 建一個機構名稱、地址、成人口罩、小孩口罩的新檔案,
# ,命名為mask1並輸出至目前的資料夾
# 先命名、並篩選需要的欄位
# 3. 檢視成人口罩和兒童口罩數量的多寡?
# 4. 超過5000個成人口罩的機構有哪些? 物件名稱為mask5000
# 5. 將超過5000個成人口罩的機構輸出為csv檔,命名為mask5000