# 主題:社群平台議題分析
# 任務:RQ.1社群平台種類使用分析
# 組別:應用藝術學系 第一組
### 資料框處理
# 請至台灣傳播資料庫下載「2019年調查」的sav檔
# 網址:https://www.crctaiwan.nctu.edu.tw/AnnualSurvey.asp
## 1. 將輸入的sav檔案命名為tcs2019
library(sjlabelled)
tcs2019 <- read_spss("tcs2019.sav")
library(sjlabelled)
tcs2019 <- read_spss("tcs2019.sav")
# (2)變數整理
# 年齡「變數重新分類」為4類:18-35,36-49,50-64,65UP
# 備註:break的值(x,y,z)是指: group1 >x & <=y; group2 >y & <=z
tcs2019$agegroup <- cut(tcs2019$ra2, breaks = c(17,35,49,64,Inf), 
                        labels = c("18至35歲", "36至49歲","50至64歲","65歲以上"))
# 製作次數分配表
# install.packages("sjmisc")
library(sjmisc)
frq(tcs2019$agegroup, encoding = "big-5", out="v")
x <categorical>
val label frq raw.prc valid.prc cum.prc
18至35歲 343 17.15 17.15 17.15
36至49歲 534 26.70 26.70 43.85
50至64歲 583 29.15 29.15 73.00
65歲以上 540 27.00 27.00 100.00
NA NA 0 0.00 NA NA
total N=2000 · valid N=2000 · x̄=2.66 · σ=1.05
# b.確認各社群平台種類數據? k3.1,k3.3,k3.6,k3.7
### 複選題處理方式:
# 1. 先篩選出年齡層、確認各社群平台種類
names(tcs2019)
##   [1] "id"       "type"     "a1"       "a2"       "a3"       "a3.a"    
##   [7] "a4"       "a5.1"     "a6"       "a6.a"     "a7"       "a7.a"    
##  [13] "a8"       "a8.a"     "a9"       "a9.a"     "b1"       "b2a"     
##  [19] "b3a"      "b3b"      "b3c"      "b3d"      "b3e"      "b3f"     
##  [25] "b4.1.a.1" "b4.1.a.2" "b4.1.b.1" "b4.1.b.2" "b4.2.a.1" "b4.2.a.2"
##  [31] "b4.2.b.1" "b4.2.b.2" "b4.3.a.1" "b4.3.a.2" "b4.3.b.1" "b4.3.b.2"
##  [37] "c1a"      "c1b.1"    "c1b.2"    "c1c.1"    "c1c.2"    "c1c.3"   
##  [43] "c1c.4"    "c1c.5"    "c1c.6"    "c1c.7"    "c1c.13"   "c1c.12"  
##  [49] "c1c.36"   "c1c.10"   "c1c.14"   "c1c.17"   "c1c.11"   "c1c.15"  
##  [55] "c1c.19"   "c1c.41"   "c1c.42"   "c1c.43"   "c1c.28"   "c1c.35"  
##  [61] "c1c.16"   "c1c.20"   "c1c.21"   "c1c.22"   "c1c.26"   "c1c.30"  
##  [67] "c1c.31"   "c1c.32"   "c1c.33"   "c1c.34"   "c1c.37"   "c1c.38"  
##  [73] "c1c.40"   "c1c.44"   "c1c.88"   "c1c.a"    "c3a"      "c3b.1"   
##  [79] "c3b.2"    "c3c.24"   "c3c.28"   "c3c.21"   "c3c.26"   "c3c.6"   
##  [85] "c3c.1"    "c3c.2"    "c3c.4"    "c3c.5"    "c3c.18"   "c3c.8"   
##  [91] "c3c.17"   "c3c.19"   "c3c.9"    "c3c.23"   "c3c.16"   "c3c.13"  
##  [97] "c3c.22"   "c3c.11"   "c3c.15"   "c3c.14"   "c3c.20"   "c3c.12"  
## [103] "c3c.10"   "c3c.25"   "c3c.27"   "c3c.7"    "c3c.29"   "c3c.30"  
## [109] "c3c.32"   "c3c.33"   "c3c.34"   "c3c.35"   "c3c.36"   "c3c.37"  
## [115] "c3c.38"   "c3c.39"   "c3c.40"   "c3c.41"   "c3c.42"   "c3c.43"  
## [121] "c3c.44"   "c3c.45"   "c3c.46"   "c3c.47"   "c3c.48"   "c3c.49"  
## [127] "c3c.50"   "c3c.51"   "c3c.52"   "c3c.53"   "c3c.54"   "c3c.55"  
## [133] "c3c.56"   "c3c.57"   "c3c.58"   "c3c.59"   "c3c.60"   "c3c.61"  
## [139] "c3c.88"   "c3c.a"    "d1a"      "d1b.1"    "d1b.2"    "d2a"     
## [145] "d2b.1"    "d2b.2"    "e1"       "e2.1"     "e2.2"     "f1"      
## [151] "f2.1"     "f2.2"     "f3"       "f4.1"     "f4.2"     "f5"      
## [157] "f6.1"     "f6.2"     "f7"       "f7.a"     "g1"       "g2.1"    
## [163] "g2.2"     "g3.1"     "g3.2"     "g3.3"     "g3.4"     "g3.5"    
## [169] "g3.6"     "g3.7"     "g3.8"     "g3.9"     "g3.10"    "g3.11"   
## [175] "g3.12"    "g3.13"    "g3.14"    "g3.15"    "g3.16"    "g3.17"   
## [181] "g3.18"    "g3.19"    "g3.20"    "g3.21"    "g3.22"    "g3.23"   
## [187] "g3.24"    "g3.25"    "g3.26"    "g3.27"    "g3.28"    "g3.29"   
## [193] "g3.30"    "g3.31"    "g3.32"    "g3.33"    "g3.34"    "g3.35"   
## [199] "g3.36"    "g3.88"    "g3.a"     "g4.1"     "g4.1.a"   "g4.2"    
## [205] "g4.2.a"   "g5.0.1"   "g5.0.2"   "g5.0.3"   "g5.0.4"   "g5.0.5"  
## [211] "g5.0.6"   "g5.0.7"   "g5.0.8"   "g5.0.9"   "g5.0.10"  "g5.0.11" 
## [217] "g5.0.12"  "g5.0.13"  "g5.0.14"  "g5.0.15"  "g5.0.88"  "g5.0.a"  
## [223] "g5.5"     "g5.6"     "g5.7"     "g5.8"     "g5.9"     "g5.10"   
## [229] "g5.11"    "g5.12"    "g5.14"    "h1"       "h2"       "h3"      
## [235] "h4.1.a.1" "h4.1.a.2" "h4.1.b.1" "h4.1.b.2" "h4.2.a.1" "h4.2.a.2"
## [241] "h4.2.b.1" "h4.2.b.2" "h4.3.a.1" "h4.3.a.2" "h4.3.b.1" "h4.3.b.2"
## [247] "h5.1"     "h5.2"     "h5.3"     "h5.4"     "h5.5"     "h5.6"    
## [253] "h5.7"     "h5.8"     "ha1"      "ha2"      "ha3a.1"   "ha3a.2"  
## [259] "ha3a.3"   "ha3a.4"   "ha3a.5"   "ha3a.6"   "ha3a.7"   "ha3a.99" 
## [265] "ha3b.1"   "ha3b.2"   "ha3b.3"   "ha3b.4"   "ha3b.5"   "ha3b.6"  
## [271] "ha3b.7"   "ha3b.99"  "ha4"      "ha5a.1"   "ha5a.2"   "ha5a.3"  
## [277] "ha5a.4"   "ha5a.5"   "ha5a.6"   "ha5a.99"  "ha5b.1"   "ha5b.2"  
## [283] "ha5b.3"   "ha5b.4"   "ha5b.5"   "ha5b.6"   "ha5b.99"  "ha5c.1"  
## [289] "ha5c.2"   "ha5c.3"   "ha5c.4"   "ha5c.5"   "ha5c.6"   "ha5c.99" 
## [295] "ha6.1"    "ha6.2"    "ha6.3"    "ha6.4"    "ha6.5"    "ha6.6"   
## [301] "ha6.7"    "ha6.99"   "ha7.1"    "ha7.2"    "ha7.3"    "ha7.4"   
## [307] "ha7.5"    "ha7.6"    "ha7.7"    "ha7.99"   "i1"       "i1.a"    
## [313] "i2"       "i2.a"     "i3"       "i3.a"     "i4.1"     "i4.2"    
## [319] "i4.3"     "i4.4"     "i4.5"     "i5a.1"    "i5a.2"    "i5a.3"   
## [325] "i5a.4"    "i5a.5"    "i5a.6"    "i5a.7"    "i5a.8"    "i5a.9"   
## [331] "i5a.10"   "i5a.88"   "i5a.a"    "i5a.90"   "i5b.1"    "i5b.2"   
## [337] "i5b.3"    "i5b.4"    "i5b.5"    "i5b.6"    "i5b.88"   "i5b.a"   
## [343] "i5b.90"   "i6.1"     "i6.2"     "i6.3"     "i6.4"     "i6.5"    
## [349] "i6.90"    "i7a"      "i7b"      "i7c"      "i8.1"     "i8.2"    
## [355] "i8.3"     "i8.4"     "i8.5"     "i8.6"     "i8.7"     "i8.8"    
## [361] "i8.88"    "i8.a"     "i9.1.1"   "i9.1.2"   "i9.1.3"   "i9.1.4"  
## [367] "i9.1.5"   "i9.1.6"   "i9.1.7"   "i9.1.8"   "i9.1.9"   "i9.1.10" 
## [373] "i9.1.88"  "i9.1.a"   "i9.2.1"   "i9.2.2"   "i9.2.3"   "i9.2.4"  
## [379] "i9.2.5"   "i9.2.6"   "i9.2.7"   "i9.2.8"   "i9.2.88"  "i9.2.a"  
## [385] "i10.1"    "i10.2"    "i10.3"    "i10.4"    "i10.5"    "i10.6"   
## [391] "i10.7"    "i10.8"    "i10.88"   "i10.a"    "i11.1"    "i11.2"   
## [397] "i11.3"    "i11.4"    "i11.5"    "i11.6"    "i11.7"    "i11.8"   
## [403] "i11.88"   "i11.a"    "i12.1"    "i12.2.1"  "i12.2.2"  "i12.2.3" 
## [409] "i12.2.4"  "i12.2.5"  "i12.2.6"  "i12.2.7"  "i12.2.8"  "i12.2.88"
## [415] "i12.2.a"  "n1.1"     "n1.2"     "n1.3"     "n1.4"     "n1.5"    
## [421] "n1.6"     "n1.7"     "n1.8"     "n1.9"     "n1.10"    "n2.1"    
## [427] "n2.2"     "n2.3"     "n2.4"     "n2.5"     "n2.6"     "n2.7"    
## [433] "n2.8"     "n2.9"     "n2.10"    "n2.11"    "n2.12"    "n2.13"   
## [439] "n2.14"    "j1a"      "j1b.1"    "j1b.2"    "j1c.1"    "j1c.2"   
## [445] "j1c.3"    "j1c.4"    "j1c.5"    "j1c.6"    "j1c.8"    "j1c.9"   
## [451] "j1c.10"   "j1c.11"   "j1c.12"   "j1c.13"   "j1c.88"   "j1c.a"   
## [457] "j2.1"     "j2.2"     "j2.3"     "j2.4"     "j2.5"     "j2.6"    
## [463] "j2.7"     "j2.8"     "j2.9"     "k1"       "k2.1"     "k2.2"    
## [469] "k3.1"     "k3.3"     "k3.4"     "k3.6"     "k3.7"     "k3.8"    
## [475] "k3.88"    "k3.a"     "k4.1"     "k4.2"     "k4.3"     "k4.4"    
## [481] "k4.5"     "k4.6"     "k4.7"     "k4.8"     "k4.9"     "k4.10"   
## [487] "k4.11"    "k4.12"    "k4.13"    "k4.14"    "k4.15"    "k4.88"   
## [493] "k4.a"     "k5.1"     "k5.2"     "k5.3"     "k5.4"     "k5.5"    
## [499] "k5.6"     "k6.1"     "k6.2"     "k6.3"     "k6.4"     "k7"      
## [505] "k9.1"     "k9.2"     "k9.3"     "k9.4"     "k9.5"     "k10"     
## [511] "k11.1"    "k11.2"    "k11.3"    "k11.4"    "k11.5"    "k12"     
## [517] "k13"      "k14"      "k15.1"    "k15.2"    "k15.3"    "k15.4"   
## [523] "k15.5"    "k15.6"    "k15.7"    "k15.88"   "k15.a"    "k16.1"   
## [529] "k16.2"    "l1a"      "l1b"      "l3a"      "l3b"      "l5.1"    
## [535] "l5.2"     "l6"       "l7"       "l8"       "l9a"      "l9b.1"   
## [541] "l9b.2"    "l9b.3"    "l9b.4"    "l10a"     "l10b.1"   "l10b.2"  
## [547] "l10b.3"   "l10b.4"   "l11a"     "l11b.1"   "l11b.2"   "l11b.3"  
## [553] "l11b.4"   "l12"      "l13"      "l14"      "l14.a"    "l15"     
## [559] "m1.1"     "m1.2"     "m1.3"     "m1.4"     "m1.5"     "m1.6"    
## [565] "m1.7"     "m1.8"     "m1.9"     "m2a.1"    "m2a.2"    "m2a.3"   
## [571] "m2a.4"    "m2a.5"    "m2a.6"    "m2a.7"    "m2a.8"    "m2a.9"   
## [577] "n3a.1"    "n3a.2"    "n3a.3"    "n3a.4"    "n3a.5"    "n3b"     
## [583] "n4"       "n5"       "n6"       "n7"       "n8a"      "n8b"     
## [589] "n9.1"     "n9.2"     "n9.3"     "n9.4"     "n10a"     "n10b"    
## [595] "n11a"     "n11b"     "o1"       "o1.a"     "o2"       "o2.a"    
## [601] "o3a"      "o3a.a"    "o3b"      "o3b.a"    "o4"       "ra2"     
## [607] "rra2"     "rcity"    "ra9"      "rb3a"     "rb3b"     "rb3c"    
## [613] "rb3e"     "rb4.1.a"  "rrb4.1.a" "rb4.1.b"  "rrb4.1.b" "rb4.2.a" 
## [619] "rrb4.2.a" "rb4.2.b"  "rrb4.2.b" "rb4.3.a"  "rrb4.3.a" "rb4.3.b" 
## [625] "rrb4.3.b" "rc1b"     "rrc1b"    "rc3b"     "rrc3b"    "rd1b"    
## [631] "rrd1b"    "rd2b"     "rrd2b"    "re2"      "rre2"     "rf2"     
## [637] "rrf2"     "rf4"      "rrf4"     "rf6"      "rrf6"     "rg2"     
## [643] "rrg2"     "rh4.1.a"  "rrh4.1.a" "rh4.1.b"  "rrh4.1.b" "rh4.2.a" 
## [649] "rrh4.2.a" "rh4.2.b"  "rrh4.2.b" "rh4.3.a"  "rrh4.3.a" "rh4.3.b" 
## [655] "rrh4.3.b" "rh5.8"    "ri4.1"    "ri4.2"    "ri4.3"    "ri4.4"   
## [661] "ri4.5"    "rj1b"     "rrj1b"    "rk2"      "rrk2"     "rl6"     
## [667] "rl7"      "ro3b.a"   "weight"   "agegroup"
DF <- data.frame(tcs2019[,c(670, 469:473)])
# 2. 需填補遺漏值為1
DF[is.na(DF)] <- 0
# 3. 透過tidyr套件中的gather將寬格式轉為長格式
install.packages("tidyr")
## Installing package into '/home/rstudio-user/R/x86_64-pc-linux-gnu-library/4.0'
## (as 'lib' is unspecified)
library(tidyr)
## 
## Attaching package: 'tidyr'
## The following object is masked from 'package:sjmisc':
## 
##     replace_na
DF1 <- gather(DF, key = "identify", value = "count", k3.1,k3.3,k3.6,k3.7)
## Warning: attributes are not identical across measure variables;
## they will be dropped
# 可以不必理會警告訊息
# 4. 篩選出count==1的資料框
DF2 <- subset(DF1, count==1)
### (3)回答RQ
#RQ.1各年齡層使用社群平台上人數的差異
## 製表
install.packages("sjPlot")
## Installing package into '/home/rstudio-user/R/x86_64-pc-linux-gnu-library/4.0'
## (as 'lib' is unspecified)
library(sjPlot)
sjt.xtab(DF2$agegroup, DF2$identify,encoding = "big-5",
         show.cell.prc = T,show.row.prc = T,show.col.prc = T)              
agegroup identify Total
k3.1 k3.3 k3.6 k3.7
18至35歲 319
55 %
26.1 %
18.4 %
48
8.3 %
51.1 %
2.8 %
184
31.7 %
54.1 %
10.6 %
29
5 %
36.7 %
1.7 %
580
100 %
33.4 %
33.5 %
36至49歲 474
72.3 %
38.8 %
27.3 %
33
5 %
35.1 %
1.9 %
121
18.4 %
35.6 %
7 %
28
4.3 %
35.4 %
1.6 %
656
100 %
37.8 %
37.8 %
50至64歲 322
83.4 %
26.4 %
18.6 %
12
3.1 %
12.8 %
0.7 %
32
8.3 %
9.4 %
1.8 %
20
5.2 %
25.3 %
1.2 %
386
100 %
22.2 %
22.3 %
65歲以上 107
94.7 %
8.8 %
6.2 %
1
0.9 %
1.1 %
0.1 %
3
2.7 %
0.9 %
0.2 %
2
1.8 %
2.5 %
0.1 %
113
100 %
6.5 %
6.6 %
Total 1222
70.4 %
100 %
70.4 %
94
5.4 %
100 %
5.4 %
340
19.6 %
100 %
19.6 %
79
4.6 %
100 %
4.6 %
1735
100 %
100 %
100 %
χ2=143.950 · df=9 · Cramer’s V=0.166 · p=0.000
## 製圖
# 1. 變數處理
# (1) 將要繪製的變數變成類別變數或先進行排序
class(DF2$agegroup)              
## [1] "factor"
class(DF2$identify)
## [1] "character"
DF2$identify <- as.factor(DF2$identify)

# 2. 安裝並載入 ggplot2
#install.packages("ggplot2")
# 載入 ggplot2
library(ggplot2)
# 解決Rstudio cloud圖形中文顯示問題
#install.packages("showtext")
library(showtext)
## Loading required package: sysfonts
## Loading required package: showtextdb
showtext_auto()
ggplot(DF2, 
       aes(identify, fill=agegroup))+
  geom_bar()+
  labs(title = "台灣民眾各年齡層社群平台使用比較",x="社群平台種類",y="人數",
       subtitle="年齡使用社群平台的差異?",
       caption="資料來源:台灣傳播調查資料庫")+
  theme(panel.background = element_blank())+
  theme(plot.title = element_text(hjust = 0.5))+
  theme(axis.title.y = element_text(vjust = 0.5, hjust = 0.5, angle = 0))+
  scale_x_discrete("社群平台種類",labels = c("k3.1" = "Facebook","k3.3" = "Twitter", "k3.6" = "Instagram",
                                       "k3.7" = "微信"))+
  scale_fill_manual("年齡層",values=c("lightskyblue1", "rosybrown2", "steelblue1","tomato1"),
                    labels=c("18至35歲", "36至49歲", "50至64歲","65歲以上"))