# 載入套件
library(readxl) # 讀取 Excel 檔
library(dplyr) # 資料處理與檢視
Attaching package: 'dplyr'
The following objects are masked from 'package:stats':
filter, lag
The following objects are masked from 'package:base':
intersect, setdiff, setequal, union
# 讀入 Excel 資料
tiktok <- read_excel("民主實驗室TikTok使用者網路調查_資料檔0326.xlsx",
col_names = TRUE) # TRUE 表示第一列為欄位名稱
Warning: Expecting logical in AD1361 / R1361C30: got '社會民主黨'
Warning: Expecting logical in AD1975 / R1975C30: got '不一定'
Warning: Expecting logical in AD2298 / R2298C30: got '勞工黨'
# 檢查資料結構與欄位名稱
str(tiktok)
tibble [2,612 × 77] (S3: tbl_df/tbl/data.frame)
$ 編號 : chr [1:2612] "A0001" "A0002" "A0003" "A0004" ...
$ 抖音活躍使用者: num [1:2612] 1 1 1 1 1 1 1 1 1 1 ...
$ S0 : num [1:2612] 8 27 14 23 21 39 20 26 52 26 ...
$ S0_AGE : num [1:2612] 21 40 27 36 34 52 33 39 65 39 ...
$ S1 : num [1:2612] 4 5 4 4 5 5 4 3 3 5 ...
$ S2 : num [1:2612] 4 3 4 3 3 2 4 4 4 3 ...
$ Q1_1 : num [1:2612] 1 11 10 2 7 6 2 2 10 12 ...
$ Q1_2 : num [1:2612] 10 10 13 9 6 10 10 10 2 3 ...
$ Q1_3 : num [1:2612] 3 5 NA NA 1 5 1 NA 1 NA ...
$ Q1_4 : num [1:2612] 9 12 NA NA 4 9 9 NA 13 NA ...
$ Q1_5 : num [1:2612] NA 9 NA NA 9 2 NA NA NA NA ...
$ Q1_O : chr [1:2612] NA NA NA NA ...
$ Q2_1 : num [1:2612] 3 2 8 9 1 16 3 12 20 10 ...
$ Q2_2 : num [1:2612] 6 11 9 2 9 5 9 4 2 18 ...
$ Q2_3 : num [1:2612] 16 NA NA NA 7 7 1 NA NA 17 ...
$ Q2_O : chr [1:2612] NA NA NA NA ...
$ Q3_1 : num [1:2612] 1 1 1 5 2 1 5 4 1 2 ...
$ Q3_2 : num [1:2612] NA 4 3 2 1 4 1 1 3 4 ...
$ Q3_3 : num [1:2612] NA 3 NA NA 5 NA NA NA NA 3 ...
$ Q3_O : chr [1:2612] NA NA NA NA ...
$ Q4 : num [1:2612] 7 3 1 7 5 1 7 1 7 3 ...
$ Q4_O : chr [1:2612] NA NA NA NA ...
$ Q5 : num [1:2612] 2 5 4 3 5 5 5 5 3 5 ...
$ Q6 : num [1:2612] 2 5 5 4 4 5 4 5 3 5 ...
$ Q7 : num [1:2612] 3 5 3 4 5 4 4 5 2 5 ...
$ Q8 : num [1:2612] 2 5 3 4 4 3 3 4 3 5 ...
$ Q9 : num [1:2612] 14 2 3 6 1 2 14 14 1 11 ...
$ Q9_O : chr [1:2612] NA NA NA NA ...
$ Q10 : num [1:2612] 10 1 3 1 2 1 10 10 2 6 ...
$ Q10_O : logi [1:2612] NA NA NA NA NA NA ...
$ Q11 : num [1:2612] 3 3 1 8 1 2 10 6 1 4 ...
$ Q11_O : chr [1:2612] NA NA NA NA ...
$ Q12 : num [1:2612] 4 4 1 1 1 5 4 6 1 6 ...
$ Q13 : num [1:2612] 2 2 10 1 1 1 10 2 2 6 ...
$ Q13_O : chr [1:2612] NA NA NA NA ...
$ Q14 : num [1:2612] 1 1 3 2 1 1 3 3 2 1 ...
$ Q15 : num [1:2612] 4 5 1 4 2 6 4 6 4 6 ...
$ Q16 : num [1:2612] 3 3 1 3 5 1 4 6 4 6 ...
$ Q17 : num [1:2612] 3 5 1 4 5 3 2 5 4 6 ...
$ Q18 : num [1:2612] 3 2 1 6 5 1 5 5 2 5 ...
$ Q19 : num [1:2612] 2 1 1 4 1 1 2 5 4 6 ...
$ Q20 : num [1:2612] 2 2 1 5 4 1 2 6 4 5 ...
$ Q21 : num [1:2612] 3 2 1 6 1 3 5 5 3 6 ...
$ Q22 : num [1:2612] 2 3 1 6 5 1 4 5 5 6 ...
$ Q23 : num [1:2612] 3 3 1 3 1 3 3 1 1 1 ...
$ Q23_O : chr [1:2612] NA NA NA NA ...
$ Q24 : num [1:2612] 2 1 1 4 2 1 3 6 4 6 ...
$ Q25 : num [1:2612] 3 4 1 4 2 4 3 6 4 6 ...
$ Q26 : num [1:2612] 4 3 1 3 4 1 5 6 3 6 ...
$ Q27 : num [1:2612] 3 3 1 4 4 3 4 6 2 6 ...
$ Q28 : num [1:2612] 3 3 1 3 4 3 5 5 2 5 ...
$ Q29 : num [1:2612] 4 2 1 6 4 1 1 6 4 6 ...
$ Q30 : num [1:2612] 2 1 1 6 6 1 3 6 4 6 ...
$ Q31 : num [1:2612] 2 5 1 6 4 6 5 5 4 5 ...
$ Q32 : num [1:2612] 4 5 1 5 2 3 5 6 2 6 ...
$ Q33 : num [1:2612] 3 4 1 4 3 3 4 6 4 5 ...
$ Q34 : num [1:2612] 3 1 1 3 1 1 3 6 4 6 ...
$ Q35 : num [1:2612] 3 1 1 5 1 1 4 6 4 5 ...
$ Q36 : num [1:2612] 3 4 1 4 2 4 4 5 4 5 ...
$ Q37 : num [1:2612] 3 4 1 4 2 4 4 5 4 5 ...
$ Q38 : num [1:2612] 3 4 1 3 3 4 4 5 4 4 ...
$ Q39 : num [1:2612] 3 2 1 5 4 2 1 5 3 5 ...
$ Q40 : num [1:2612] 3 2 4 4 2 2 3 4 2 3 ...
$ Q41 : num [1:2612] 3 3 1 3 3 3 4 5 4 5 ...
$ Q42 : num [1:2612] 3 3 2 3 2 3 3 5 3 5 ...
$ Q43 : num [1:2612] 3 3 1 3 2 3 3 5 3 5 ...
$ Q44 : num [1:2612] 2 2 1 1 1 1 2 2 1 1 ...
$ Q45 : num [1:2612] 6 7 7 6 7 6 6 6 5 7 ...
$ Q45_O : logi [1:2612] NA NA NA NA NA NA ...
$ Q46 : num [1:2612] 2 2 2 2 2 1 3 1 2 1 ...
$ Q47 : num [1:2612] 1 6 1 5 7 11 4 5 7 7 ...
$ Q48 : num [1:2612] 12 3 2 8 3 3 4 15 8 15 ...
$ SEX : num [1:2612] 2 2 1 1 1 1 2 2 1 1 ...
$ AGE : num [1:2612] 1 3 1 2 2 4 2 2 5 2 ...
$ EDU : num [1:2612] 5 5 5 5 5 5 5 5 4 5 ...
$ AREA : num [1:2612] 6 2 2 1 2 2 4 5 1 5 ...
$ WT : num [1:2612] 0.588 0.424 0.833 0.398 0.407 ...
[1] "編號" "抖音活躍使用者" "S0" "S0_AGE"
[5] "S1" "S2" "Q1_1" "Q1_2"
[9] "Q1_3" "Q1_4" "Q1_5" "Q1_O"
[13] "Q2_1" "Q2_2" "Q2_3" "Q2_O"
[17] "Q3_1" "Q3_2" "Q3_3" "Q3_O"
[21] "Q4" "Q4_O" "Q5" "Q6"
[25] "Q7" "Q8" "Q9" "Q9_O"
[29] "Q10" "Q10_O" "Q11" "Q11_O"
[33] "Q12" "Q13" "Q13_O" "Q14"
[37] "Q15" "Q16" "Q17" "Q18"
[41] "Q19" "Q20" "Q21" "Q22"
[45] "Q23" "Q23_O" "Q24" "Q25"
[49] "Q26" "Q27" "Q28" "Q29"
[53] "Q30" "Q31" "Q32" "Q33"
[57] "Q34" "Q35" "Q36" "Q37"
[61] "Q38" "Q39" "Q40" "Q41"
[65] "Q42" "Q43" "Q44" "Q45"
[69] "Q45_O" "Q46" "Q47" "Q48"
[73] "SEX" "AGE" "EDU" "AREA"
[77] "WT"
Warning: Unknown or uninitialised column: `edu`.
Length Class Mode
0 NULL NULL
#將研究變數列出來
# 標示研究變數
research_vars <- c(
# 主要人口變數
"EDU", # 教育程度
"AREA", # 地區(社會地位代理變數)
"AGE", # 年齡
"SEX", # 性別
# 使用行為相關(社會地位指標)
"抖音活躍使用者", # 活躍程度
"Q5", "Q6", # 使用頻率與時間(可能指標)
# 媒體識讀相關
"Q1_1", "Q1_2", "Q1_3", "Q1_4", "Q1_5", # 使用動機
"Q2_1", "Q2_2", "Q2_3", # 內容偏好
"Q3_1", "Q3_2", "Q3_3", # 互動行為
"Q4", # 可能與批判思考相關
# 群體極化相關
"Q9", "Q10", "Q11", "Q12", "Q13", # 社會影響相關
"Q14", "Q15", "Q16", "Q17", "Q18" # 觀點與態度
)
# 檢查這些變數是否存在於資料中
available_vars <- research_vars[research_vars %in% names(tiktok)]
missing_vars <- research_vars[!research_vars %in% names(tiktok)]
cat("可用的研究變數:", paste(available_vars, collapse = ", "), "\n")
可用的研究變數: EDU, AREA, AGE, SEX, 抖音活躍使用者, Q5, Q6, Q1_1, Q1_2, Q1_3, Q1_4, Q1_5, Q2_1, Q2_2, Q2_3, Q3_1, Q3_2, Q3_3, Q4, Q9, Q10, Q11, Q12, Q13, Q14, Q15, Q16, Q17, Q18
cat("缺失的變數:", paste(missing_vars, collapse = ", "), "\n")
# 創建研究用的精簡資料框
tiktok_research <- tiktok %>%
select(all_of(available_vars), WT) # 保留加權變數
# 顯示精簡資料框結構
str(tiktok_research)
tibble [2,612 × 30] (S3: tbl_df/tbl/data.frame)
$ EDU : num [1:2612] 5 5 5 5 5 5 5 5 4 5 ...
$ AREA : num [1:2612] 6 2 2 1 2 2 4 5 1 5 ...
$ AGE : num [1:2612] 1 3 1 2 2 4 2 2 5 2 ...
$ SEX : num [1:2612] 2 2 1 1 1 1 2 2 1 1 ...
$ 抖音活躍使用者: num [1:2612] 1 1 1 1 1 1 1 1 1 1 ...
$ Q5 : num [1:2612] 2 5 4 3 5 5 5 5 3 5 ...
$ Q6 : num [1:2612] 2 5 5 4 4 5 4 5 3 5 ...
$ Q1_1 : num [1:2612] 1 11 10 2 7 6 2 2 10 12 ...
$ Q1_2 : num [1:2612] 10 10 13 9 6 10 10 10 2 3 ...
$ Q1_3 : num [1:2612] 3 5 NA NA 1 5 1 NA 1 NA ...
$ Q1_4 : num [1:2612] 9 12 NA NA 4 9 9 NA 13 NA ...
$ Q1_5 : num [1:2612] NA 9 NA NA 9 2 NA NA NA NA ...
$ Q2_1 : num [1:2612] 3 2 8 9 1 16 3 12 20 10 ...
$ Q2_2 : num [1:2612] 6 11 9 2 9 5 9 4 2 18 ...
$ Q2_3 : num [1:2612] 16 NA NA NA 7 7 1 NA NA 17 ...
$ Q3_1 : num [1:2612] 1 1 1 5 2 1 5 4 1 2 ...
$ Q3_2 : num [1:2612] NA 4 3 2 1 4 1 1 3 4 ...
$ Q3_3 : num [1:2612] NA 3 NA NA 5 NA NA NA NA 3 ...
$ Q4 : num [1:2612] 7 3 1 7 5 1 7 1 7 3 ...
$ Q9 : num [1:2612] 14 2 3 6 1 2 14 14 1 11 ...
$ Q10 : num [1:2612] 10 1 3 1 2 1 10 10 2 6 ...
$ Q11 : num [1:2612] 3 3 1 8 1 2 10 6 1 4 ...
$ Q12 : num [1:2612] 4 4 1 1 1 5 4 6 1 6 ...
$ Q13 : num [1:2612] 2 2 10 1 1 1 10 2 2 6 ...
$ Q14 : num [1:2612] 1 1 3 2 1 1 3 3 2 1 ...
$ Q15 : num [1:2612] 4 5 1 4 2 6 4 6 4 6 ...
$ Q16 : num [1:2612] 3 3 1 3 5 1 4 6 4 6 ...
$ Q17 : num [1:2612] 3 5 1 4 5 3 2 5 4 6 ...
$ Q18 : num [1:2612] 3 2 1 6 5 1 5 5 2 5 ...
$ WT : num [1:2612] 0.588 0.424 0.833 0.398 0.407 ...