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

# 2. 檢視資料
library(readr)
tcs2019 <- read_csv("tcs2019.sav")
## Warning: Duplicated column names deduplicated: '' => '_1' [3], '' => '_2' [4],
## '大概有多少是你認識的? \002' => '大概有多少是你認識的? \002_1' [15], 'Skype'
## => 'Skype_1' [24], '臉書即時通訊' => '臉書即時通訊_1' [25], 'FaceTime)互動(包
## 括使用貼圖' => 'FaceTime)互動(包括使用貼圖_1' [26], '文字訊息' => '文字訊息
## _1' [27], '語音通話' => '語音通話_1' [28], 'Skype' => 'Skype_2' [31], '臉書即時
## 通訊' => '臉書即時通訊_2' [32], 'FaceTime)互動(包括使用貼圖' => 'FaceTime)互動
## (包括使用貼圖_2' [33], '文字訊息' => '文字訊息_2' [34], '語音通話' => '語音通話
## _2' [35], '你每天和別人透過即時通訊軟體(例如:Line' => '你每天和別人透過即時通訊
## 軟體(例如:Line_1' [37], 'Skype' => 'Skype_3' [38], '臉書即時通訊' => '臉書即時通
## 訊_3' [39], 'FaceTime)互動(包括使用貼圖' => 'FaceTime)互動(包括使用貼圖_3' [40],
## '文字訊息' => '文字訊息_3' [41], '語音通話' => '語音通話_3' [42], '你每天和別人
## 透過手機或室內電話通話(含手機簡訊和語音信箱留言;不包含FaceTime' => '你每天和別
## 人透過手機或室內電話通話(含手機簡訊和語音信箱留言;不包含FaceTime_1' [48], '或
## 以Apps看新聞)的那一天' => '或以Apps看新聞)的那一天_1' [57], '你一整天大概會看
## 多久?(時) \002' => '你一整天大概會看多久?(時) \002_1' [62], '你一整天大概會看
## 多久?(分) \002' => '你一整天大概會看多久?(分) \002_1' [63], '你一整天大概會看
## 多久?(時) \002' => '你一整天大概會看多久?(時) \002_2' [64], '你一整天大概會看
## 多久?(分) \002' => '你一整天大概會看多久?(分) \002_2' [65], '你一整天大概會看
## 多久?(時) \002' => '你一整天大概會看多久?(時) \002_3' [69], '你一整天大概會看
## 多久?(分) \002' => '你一整天大概會看多久?(分) \002_3' [70], '你一整天大概會看
## 多久?(時) \002' => '你一整天大概會看多久?(時) \002_1' [75], '你一整天大概會看多
## 久?(分) \002' => '你一整天大概會看多久?(分) \002_1' [76], '你一整天利用電腦上網
## 工作' => '你一整天利用電腦上網工作_1' [91], '學習的時間大概有多久(不含手機' =>
## '學習的時間大概有多久(不含手機_1' [92], '你一整天使用電腦上網娛樂與休閒的時間大
## 概有多久(不含手機' => '你一整天使用電腦上網娛樂與休閒的時間大概有多久(不含手機
## _1' [96], '你一整天利用平板上網工作' => '你一整天利用平板上網工作_1' [101], '學
## 習的時間大概有多久(不含電腦' => '學習的時間大概有多久(不含電腦_1' [102], '你
## 一整天使用平板上網娛樂與休閒的時間大概有多久(不含電腦' => '你一整天使用平板上
## 網娛樂與休閒的時間大概有多久(不含電腦_1' [106], '學習的時間大概有多久(不含電
## 腦' => '學習的時間大概有多久(不含電腦_2' [109], '平板上網;只算你上網時眼睛有
## 在看螢幕的時間)?(時) \002' => '平板上網;只算你上網時眼睛有在看螢幕的時間)?(時)
## \002_1' [110], '你一整天利用手機上網工作' => '你一整天利用手機上網工作_1' [111],
## '學習的時間大概有多久(不含電腦' => '學習的時間大概有多久(不含電腦_3' [112], '平
## 板上網;只算你上網時眼睛有在看螢幕的時間)?(分) \002' => '平板上網;只算你上
## 網時眼睛有在看螢幕的時間)?(分) \002_1' [113], '平板上網;只算你上網時眼睛有在
## 看螢幕的時間)?(時)\002' => '平板上網;只算你上網時眼睛有在看螢幕的時間)?(時)
## \002_1' [115], '你一整天使用手機上網娛樂與休閒的時間大概有多久(不含電腦' => '你
## 一整天使用手機上網娛樂與休閒的時間大概有多久(不含電腦_1' [116], '平板上網;只算
## 你上網時眼睛有在看螢幕的時間)?(分)\002' => '平板上網;只算你上網時眼睛有在看螢幕
## 的時間)?(分)\002_1' [117], '你同時還會做下列哪些事?-用電視機看電視 \002' => '你
## 同時還會做下列哪些事?-用電視機看電視 \002_1' [159], '你同時還會做下列哪些事?-用
## 手機上網\002' => '你同時還會做下列哪些事?-用手機上網\002_1' [161], '你同時還會做
## 下列哪些事?-看紙本報紙\002' => '你同時還會做下列哪些事?-看紙本報紙\002_1' [162],
## '你同時還會做下列哪些事?-用收音機聽廣播 \002' => '你同時還會做下列哪些事?-用收
## 音機聽廣播 \002_1' [163], '你同時還會做下列哪些事?-看紙本雜誌\002' => '你同時還
## 會做下列哪些事?-看紙本雜誌\002_1' [164], '你同時還會做下列哪些事?-以上皆無 \002'
## => '你同時還會做下列哪些事?-以上皆無 \002_1' [165], '你同時還會做下列哪些事?-
## 用電視機看電視 \002' => '你同時還會做下列哪些事?-用電視機看電視 \002_2' [166],
## '你同時還會做下列哪些事?-用電腦上網\002' => '你同時還會做下列哪些事?-用電腦上網
## \002_1' [167], '你同時還會做下列哪些事?-用平板上網\002' => '你同時還會做下列哪些
## 事?-用平板上網\002_1' [168], '你同時還會做下列哪些事?-看紙本報紙\002' => '你同時
## 還會做下列哪些事?-看紙本報紙\002_2' [169], '你同時還會做下列哪些事?-用收音機聽廣
## 播 \002' => '你同時還會做下列哪些事?-用收音機聽廣播 \002_2' [170], '你同時還會做
## 下列哪些事?-看紙本雜誌\002' => '你同時還會做下列哪些事?-看紙本雜誌\002_2' [171],
## '你同時還會做下列哪些事?-以上皆無 \002' => '你同時還會做下列哪些事?-以上皆無
## \002_2' [172], '你同時還會做下列哪些事?-用電視機看電視 \002' => '你同時還會做下
## 列哪些事?-用電視機看電視 \002_3' [173], '你同時還會做下列哪些事?-用電腦上網\002'
## => '你同時還會做下列哪些事?-用電腦上網\002_2' [175], '你同時還會做下列哪些事?-
## 用手機上網\002' => '你同時還會做下列哪些事?-用手機上網\002_2' [177], '你同時還
## 會做下列哪些事?-用收音機聽廣播 \002' => '你同時還會做下列哪些事?-用收音機聽廣播
## \002_3' [178], '你同時還會做下列哪些事?-看紙本雜誌\002' => '你同時還會做下列哪
## 些事?-看紙本雜誌\002_3' [179], '你同時還會做下列哪些事?-以上皆無 \002' => '你同
## 時還會做下列哪些事?-以上皆無 \002_3' [180], '你同時還會做下列哪些事?-用網路看電
## 視 \002' => '你同時還會做下列哪些事?-用網路看電視 \002_1' [182], '你同時還會做下
## 列哪些事?-用電腦上網 \002' => '你同時還會做下列哪些事?-用電腦上網 \002_1' [183],
## '你同時還會做下列哪些事?-用平版上網 \002' => '你同時還會做下列哪些事?-用平版上網
## \002_1' [184], '你同時還會做下列哪些事?-用手機上網 \002' => '你同時還會做下列哪
## 些事?-用手機上網 \002_1' [185], '你同時還會做下列哪些事?-看紙本報紙 \002' => '你
## 同時還會做下列哪些事?-看紙本報紙 \002_1' [186], '你同時還會做下列哪些事?-看紙本
## 雜誌 \002' => '你同時還會做下列哪些事?-看紙本雜誌 \002_1' [187], '你同時還會做
## 下列哪些事?-以上皆無 \002' => '你同時還會做下列哪些事?-以上皆無 \002_1' [188],
## '100分代表最可信(最可以相信)' => '100分代表最可信(最可以相信)_1' [198], '60分代
## 表及格' => '60分代表及格_1' [199], '100分代表最可信(最可以相信)' => '100分代表最
## 可信(最可以相信)_2' [201], '60分代表及格' => '60分代表及格_2' [202], '100分代表
## 最可信(最可以相信)' => '100分代表最可信(最可以相信)_3' [204], '60分代表及格' =>
## '60分代表及格_3' [205], '100分代表最可信(最可以相信)' => '100分代表最可信(最可以
## 相信)_4' [207], '60分代表及格' => '60分代表及格_4' [208], '針對臺灣的電視節目的
## 內容' => '針對臺灣的電視節目的內容_1' [225], '針對臺灣的電視節目的內容' => '針對
## 臺灣的電視節目
## 
## ── Column specification ────────────────────────────────────────────────────────
## cols(
##   .default = col_character()
## )
## ℹ Use `spec()` for the full column specifications.
## Warning: 858 parsing failures.
## row                                                                  col expected        actual          file
##   1 $FL2@(#) IBM SPSS STATISTICS 64-bit MS Windows 21.0.0.0                   embedded null 'tcs2019.sav'
##   1                                                                               embedded null 'tcs2019.sav'
##   1 _1                                                                            embedded null 'tcs2019.sav'
##   1 _2                                                                            embedded null 'tcs2019.sav'
##   1 就學中)?                                                                  embedded null 'tcs2019.sav'
## ... .................................................................... ........ ............. .............
## See problems(...) for more details.
# View(tcs2019)

# 當資料較大時,建議使用sjPlot套件
#安裝sjPlot套件家族
# 上網檢視cran檔: https://cran.r-project.org/web/packages/sjPlot/sjPlot.pdf
# install.packages("sjPlot")
# library(sjPlot)
# view_df(tcs2019,
#         file="tcs2019tab.html",  # 結果直接另存新檔
#         show.na = T, # 顯示未重新編碼前的無效值個數
#         show.frq = T, # 顯示次數
#         show.prc = T, # 顯示百分比
#         encoding = "big5"
# )
# View(tcs2019)
# # 3. 篩選出變數:性別(a1)、追劇上癮(g5.8,g5.9,g5.14)、
# # 電玩上癮(j2.1,j2.2,j2.3),另存為sav檔,並命名為com
# com <- tcs2019[c(3,225,226,231,457,458,459)]
# 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()
# library(rio)
# export(com,"com.sav")
# 
# ### 題組四 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")
# library(jsonlite)
# eco <- fromJSON("A17000000J-030243-WSk.json")
# str(eco)
# # 2. 篩選第1-5,16-17欄,輸出為json檔,命名為eco1
# eco1 <- eco[c(1:5,16:17)]
# str(eco1)
# library(jsonlite)
# eco1 <- toJSON(eco1)
# writeLines(eco1, con = "eco1.json")
# 
# # ----------以下為作業練習(請繳交Rpub的連結)----------------------
# 
# #--------------------
# # 周次:w11
# # 任務:應用(資料框處理與繪圖)
# # 姓名:楊享富
# # 日期:2021年04月14日
# # -------------------
# 
# ### 資料框處理
# # 請至台灣傳播資料庫下載「2019年調查」的sav檔
# # 網址:https://www.crctaiwan.nctu.edu.tw/AnnualSurvey.asp
# ## 1. 將輸入的sav檔案命名為tcs2019
# # install.packages("sjlabelled")
# library(sjlabelled)
# tcs2018 <- read_spss("2959772016.sav")
# 
# tcs2018
# ## 2. 檢視資料框的各種函數
# # 列數
# nrow(tcs2018)
# # 檢視資料框內容
# # View(tcs2019)
# # 前六行
# head(tcs2019)
# # 後六行
# tail(tcs2019)
# # 欄位名稱或變數名稱
# names(tcs2018)
# # 另一種寫法
# colnames(tcs2019)
# # 得知每個變數的描述性統計量
# summary(tcs2019)
# # 得知資料框複合式的資訊
# # (含資料結構種類、觀察值個數、變數個數、前幾筆觀察值資訊等)
# str(tcs2019)
# ## 欄數
# ncol(tcs2019)
# ## 維度
# dim(tcs2019)
# ## 列的索引值
# row.names(tcs2018)
# # 當資料較大時,建議使用sjPlot套件
# # install.packages("sjPlot")
# library(sjPlot)
# view_df(tcs2018,
#         file="2959772016.sav",  # 結果直接另存新檔
#         show.na = T, # 顯示未重新編碼前的無效值個數
#         show.frq = T, # 顯示次數
#         show.prc = T, # 顯示百分比
#         encoding = "big5"
# )
# data(tcs2018)
# View(tcs2018)