1 工作环境设置

我们通常会将R的工作环境先进行一些设置,这些设置包括了「设定当前工作目录」、 「设定系統中文文字编码」、以及「设定绘图物件中的中文文字」等项, 以下是一些操作范例。

#呈现code 与output
knitr::opts_chunk$set(echo = TRUE) 
#设定当前工作目录(请选择一个你自己的工作目录)
setwd("/Users/simonfair/Desktop/量化研究数据分析/Ch6描述统计") 
#显示目前工作目录
getwd()
## [1] "/Users/simonfair/Desktop/量化研究数据分析/Ch6描述统计"
#设定系統中文文字編碼 (mac)
Sys.setlocale(category = "LC_ALL", locale = "en_US.UTF-8") #美式英文
## [1] "en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/zh_CN.UTF-8"
Sys.setlocale(category = "LC_ALL", locale = "Zh_TW.UTF-8") #繁体中文
## [1] "Zh_TW.UTF-8/Zh_TW.UTF-8/Zh_TW.UTF-8/C/Zh_TW.UTF-8/zh_CN.UTF-8"
Sys.setlocale(category = "LC_ALL", locale = "zh_CN.UTF-8") #简体中文
## [1] "zh_CN.UTF-8/zh_CN.UTF-8/zh_CN.UTF-8/C/zh_CN.UTF-8/zh_CN.UTF-8"
#载入showtext套件
library(showtext) 
## 载入需要的程辑包:sysfonts
## 载入需要的程辑包:showtextdb
#使绘图物件中的中文文字能正确呈现
showtext_auto(enable = TRUE)

2 读取spss数据档

#调用"sjlabelled" 套件
library(sjlabelled)
#将SPSS数据汇入到R
TCS2015sc<- read_spss("TCS2015sc.sav")
#察看数据档中的变量名称
names(TCS2015sc)
##  [1] "ID"         "strata"     "A1"         "A2.year"    "A2.age"    
##  [6] "age_strata" "A7"         "A8"         "B1a"        "B1b"       
## [11] "B2"         "C1a"        "C1b.1"      "C1b.2"      "C3"        
## [16] "C4a"        "C4b.1"      "C4b.2"      "D1a"        "D1b.1"     
## [21] "D1b.2"      "E1"         "E2.1"       "E2.2"       "F6"        
## [26] "F7.1"       "F7.2"       "G1.1.A"     "G1.1.B"     "G1.1.C"    
## [31] "G2.1"       "G2.2"       "G2.3"       "G2.4"       "G2.5"      
## [36] "G2.6"       "G2.7"       "G4.1"       "G4.2"       "G4.3.1"    
## [41] "G4.3.2"     "G5.1"       "G5.2"       "G5.3"       "G5.4"      
## [46] "H1"         "H2"         "H3"         "H4.1"       "H4.2"      
## [51] "H4.3"       "H4.4"       "H4.5"       "I1"         "I3.1"      
## [56] "I3.2"       "I3.3"       "I3.4"       "I3.5"       "I3.6"      
## [61] "I3.7"       "I3.8"       "I3.9"       "I3.10"      "I3.11"     
## [66] "I3.12"      "I3.13"      "I3.14"      "I3.88"      "J1.1"      
## [71] "J1.2"       "J1.3"       "J1.4"       "J1.5"       "J2.1"      
## [76] "J2.2"       "J2.3"       "J2.4"       "J2.5"       "S1.1"      
## [81] "S1.2"       "S1.3"       "S1.4"       "S1.5"       "S1.6"      
## [86] "S1.7"       "S1.8"       "S1.9"       "S1.10"      "V1.1"      
## [91] "V1.2"       "V1.3"       "V1.4"       "V1.5"       "W3"        
## [96] "weight1"    "W_Raking"

3 类别变量的描述统计

3.1 单选题频数分布 sjmisc::frq(); sjmisc::frq(,weights=)

library(sjmisc) 
frq(TCS2015sc$V1.1) #原始未加权
## 
## V1.1. 整体而言,你对于你的生活满不满意 (x) <numeric>
## # total N=2002  valid N=2002  mean=2.78  sd=0.57
## 
## Value |      Label |    N | Raw % | Valid % | Cum. %
## ----------------------------------------------------
##     1 | 非常不满意 |   56 |  2.80 |    2.80 |   2.80
##     2 |     不满意 |  429 | 21.43 |   21.43 |  24.23
##     3 |       满意 | 1420 | 70.93 |   70.93 |  95.15
##     4 |   非常满意 |   97 |  4.85 |    4.85 | 100.00
##  <NA> |       <NA> |    0 |  0.00 |    <NA> |   <NA>
frq(TCS2015sc$V1.1, weights =TCS2015sc$weight1) #加权后     
## 
## V1.1. 整体而言,你对于你的生活满不满意 (xw) <numeric>
## # total N=2001  valid N=2001  mean=2.79  sd=0.57
## 
## Value |      Label |    N | Raw % | Valid % | Cum. %
## ----------------------------------------------------
##     1 | 非常不满意 |   55 |  2.75 |    2.75 |   2.75
##     2 |     不满意 |  420 | 20.99 |   20.99 |  23.74
##     3 |       满意 | 1420 | 70.96 |   70.96 |  94.70
##     4 |   非常满意 |  106 |  5.30 |    5.30 | 100.00
##  <NA> |       <NA> |    0 |  0.00 |    <NA> |   <NA>
  #(ps.数据档名称(TCS2015sc)$数据档中的加权变量名称(weight1),下同)

3.2 单选题频数分布(按照频数升幂) sjmisc::frq(,sort.frq=c(“asc”); sjmisc::frq(,sort.frq=c(“asc”),weights=)

frq(TCS2015sc$V1.1, sort.frq = c("asc")) #升幂(原始未加权)
## 
## V1.1. 整体而言,你对于你的生活满不满意 (x) <numeric>
## # total N=2002  valid N=2002  mean=2.78  sd=0.57
## 
## Value |      Label |    N | Raw % | Valid % | Cum. %
## ----------------------------------------------------
##     1 | 非常不满意 |   56 |  2.80 |    2.80 |   2.80
##     4 |   非常满意 |   97 |  4.85 |    4.85 |   7.64
##     2 |     不满意 |  429 | 21.43 |   21.43 |  29.07
##     3 |       满意 | 1420 | 70.93 |   70.93 | 100.00
##  <NA> |       <NA> |    0 |  0.00 |    <NA> |   <NA>
frq(TCS2015sc$V1.1, sort.frq = c("asc"), 
    weights =TCS2015sc$weight1) #升幂(加权后)
## 
## V1.1. 整体而言,你对于你的生活满不满意 (xw) <numeric>
## # total N=2001  valid N=2001  mean=2.79  sd=0.57
## 
## Value |      Label |    N | Raw % | Valid % | Cum. %
## ----------------------------------------------------
##     1 | 非常不满意 |   55 |  2.75 |    2.75 |   2.75
##     4 |   非常满意 |  106 |  5.30 |    5.30 |   8.05
##     2 |     不满意 |  420 | 20.99 |   20.99 |  29.04
##     3 |       满意 | 1420 | 70.96 |   70.96 | 100.00
##  <NA> |       <NA> |    0 |  0.00 |    <NA> |   <NA>

3.3 单选题频数分布(按照频数降幂) sjmisc::frq(,sort.frq=c(“desc”); sjmisc::frq(,sort.frq=c(“desc”),weights=)

frq(TCS2015sc$V1.1, sort.frq = c("desc")) #降幂(原始未加权)
## 
## V1.1. 整体而言,你对于你的生活满不满意 (x) <numeric>
## # total N=2002  valid N=2002  mean=2.78  sd=0.57
## 
## Value |      Label |    N | Raw % | Valid % | Cum. %
## ----------------------------------------------------
##     3 |       满意 | 1420 | 70.93 |   70.93 |  70.93
##     2 |     不满意 |  429 | 21.43 |   21.43 |  92.36
##     4 |   非常满意 |   97 |  4.85 |    4.85 |  97.20
##     1 | 非常不满意 |   56 |  2.80 |    2.80 | 100.00
##  <NA> |       <NA> |    0 |  0.00 |    <NA> |   <NA>
frq(TCS2015sc$V1.1, sort.frq = c("desc"),
    weights =TCS2015sc$weight1) #降幂(加权后)
## 
## V1.1. 整体而言,你对于你的生活满不满意 (xw) <numeric>
## # total N=2001  valid N=2001  mean=2.79  sd=0.57
## 
## Value |      Label |    N | Raw % | Valid % | Cum. %
## ----------------------------------------------------
##     3 |       满意 | 1420 | 70.96 |   70.96 |  70.96
##     2 |     不满意 |  420 | 20.99 |   20.99 |  91.95
##     4 |   非常满意 |  106 |  5.30 |    5.30 |  97.25
##     1 | 非常不满意 |   55 |  2.75 |    2.75 | 100.00
##  <NA> |       <NA> |    0 |  0.00 |    <NA> |   <NA>

3.4 条形图 sjPlot::plot_frq(,type=“bar”); sjPlot::plot_frq(,type=“bar”, weight.by=)

library(sjPlot)
## #refugeeswelcome
plot_frq(TCS2015sc$V1.1,type="bar") #原始未加权

plot_frq(TCS2015sc$V1.1,type="bar", weight.by =TCS2015sc$weight1)#加权后

3.5 饼图 base::pie()

library(sjmisc)
frq(TCS2015sc$V1.1, weights = TCS2015sc$weight1) #呈現频数分布(加权后)
## 
## V1.1. 整体而言,你对于你的生活满不满意 (xw) <numeric>
## # total N=2001  valid N=2001  mean=2.79  sd=0.57
## 
## Value |      Label |    N | Raw % | Valid % | Cum. %
## ----------------------------------------------------
##     1 | 非常不满意 |   55 |  2.75 |    2.75 |   2.75
##     2 |     不满意 |  420 | 20.99 |   20.99 |  23.74
##     3 |       满意 | 1420 | 70.96 |   70.96 |  94.70
##     4 |   非常满意 |  106 |  5.30 |    5.30 | 100.00
##  <NA> |       <NA> |    0 |  0.00 |    <NA> |   <NA>
slice.pct <- c(2.8,21.0,71.0,5.3) #產生一個向量变量:slice.pct, 并依次输入数据(百分比)
col_c = c(1:4) #使用系统预设的颜色1,颜色2,颜色3,颜色4
pie(slice.pct, main = "Pie Chart 园饼图%", #加上标题
    labels = c("非常不满意 2.8%", "不满意 21.0%", "满意 71.0%", "非常满意 5.3%"),
    col = col_c) #加上颜色与说明的pie图

3.6 复选题

#尋找特定变量
library(sjmisc)
find_var(TCS2015sc, "最重要的问题")
##    col.nr var.name                                                 var.label
## 1      55     I3.1            I3. 请问你认为哪一项是当前最重要的问题?(经济)
## 2      56     I3.2        I3. 请问你认为哪一项是当前最重要的问题?(两岸关系)
## 3      57     I3.3            I3. 请问你认为哪一项是当前最重要的问题?(教育)
## 4      58     I3.4           I3. 请问你认为哪一项是当前最重要的问题?(医疗)
## 5      59     I3.5           I3. 请问你认为哪一项是当前最重要的问题?(治安)
## 6      60     I3.6           I3. 请问你认为哪一项是当前最重要的问题?(环保)
## 7      61     I3.7          I3.  请问你认为哪一项是当前最重要的问题?(司法)
## 8      62     I3.8 I3. 请问你认为哪一项是当前最重要的问题?(社会伦理与价值)
## 9      63     I3.9       I3. 请问你认为哪一项是当前最重要的问题?(地方建设)
## 10     64    I3.10       I3. 请问你认为哪一项是当前最重要的问题?(国家认同)
## 11     65    I3.11       I3. 请问你认为哪一项是当前最重要的问题?(食品安全)
## 12     66    I3.12       I3. 请问你认为哪一项是当前最重要的问题?(薪资所得)
## 13     67    I3.13       I3. 请问你认为哪一项是当前最重要的问题?(水土保持)
## 14     68    I3.14       I3. 请问你认为哪一项是当前最重要的问题?(政党对立)
## 15     69    I3.88           I3. 请问你认为哪一项是当前最重要的问题?(其他)
#I3.1~I3.14, I3.88+I3.88.a

#呈现复选题各题的加权后次数分布
library(sjmisc)
frq(TCS2015sc, I3.1:I3.14, I3.88, weights = TCS2015sc$weight1) #加权后
## 
## I3. 请问你认为哪一项是当前最重要的问题?(经济) (I3.1) <numeric>
## # total N=1192  valid N=1192  mean=1.00  sd=0.00
## 
## Value | Label |    N | Raw % | Valid % | Cum. %
## -----------------------------------------------
##     1 |  經濟 | 1192 |   100 |     100 |    100
##  <NA> |  <NA> |    0 |     0 |    <NA> |   <NA>
## 
## 
## I3. 请问你认为哪一项是当前最重要的问题?(两岸关系) (I3.2) <numeric>
## # total N=319  valid N=319  mean=1.00  sd=0.00
## 
## Value |    Label |   N | Raw % | Valid % | Cum. %
## -------------------------------------------------
##     1 | 兩岸關係 | 319 |   100 |     100 |    100
##  <NA> |     <NA> |   0 |     0 |    <NA> |   <NA>
## 
## 
## I3. 请问你认为哪一项是当前最重要的问题?(教育) (I3.3) <numeric>
## # total N=650  valid N=650  mean=1.00  sd=0.00
## 
## Value | Label |   N | Raw % | Valid % | Cum. %
## ----------------------------------------------
##     1 |  教育 | 650 |   100 |     100 |    100
##  <NA> |  <NA> |   0 |     0 |    <NA> |   <NA>
## 
## 
## I3. 请问你认为哪一项是当前最重要的问题?(医疗) (I3.4) <numeric>
## # total N=225  valid N=225  mean=1.00  sd=0.00
## 
## Value | Label |   N | Raw % | Valid % | Cum. %
## ----------------------------------------------
##     1 |  醫療 | 225 |   100 |     100 |    100
##  <NA> |  <NA> |   0 |     0 |    <NA> |   <NA>
## 
## 
## I3. 请问你认为哪一项是当前最重要的问题?(治安) (I3.5) <numeric>
## # total N=381  valid N=381  mean=1.00  sd=0.00
## 
## Value | Label |   N | Raw % | Valid % | Cum. %
## ----------------------------------------------
##     1 |  治安 | 381 |   100 |     100 |    100
##  <NA> |  <NA> |   0 |     0 |    <NA> |   <NA>
## 
## 
## I3. 请问你认为哪一项是当前最重要的问题?(环保) (I3.6) <numeric>
## # total N=197  valid N=197  mean=1.00  sd=0.00
## 
## Value | Label |   N | Raw % | Valid % | Cum. %
## ----------------------------------------------
##     1 |  環保 | 197 |   100 |     100 |    100
##  <NA> |  <NA> |   0 |     0 |    <NA> |   <NA>
## 
## 
## I3.  请问你认为哪一项是当前最重要的问题?(司法) (I3.7) <numeric>
## # total N=236  valid N=236  mean=1.00  sd=0.00
## 
## Value | Label |   N | Raw % | Valid % | Cum. %
## ----------------------------------------------
##     1 |  司法 | 236 |   100 |     100 |    100
##  <NA> |  <NA> |   0 |     0 |    <NA> |   <NA>
## 
## 
## I3. 请问你认为哪一项是当前最重要的问题?(社会伦理与价值) (I3.8) <numeric>
## # total N=272  valid N=272  mean=1.00  sd=0.00
## 
## Value |          Label |   N | Raw % | Valid % | Cum. %
## -------------------------------------------------------
##     1 | 社會倫理與價值 | 272 |   100 |     100 |    100
##  <NA> |           <NA> |   0 |     0 |    <NA> |   <NA>
## 
## 
## I3. 请问你认为哪一项是当前最重要的问题?(地方建设) (I3.9) <numeric>
## # total N=94  valid N=94  mean=1.00  sd=0.00
## 
## Value |    Label |  N | Raw % | Valid % | Cum. %
## ------------------------------------------------
##     1 | 地方建設 | 94 |   100 |     100 |    100
##  <NA> |     <NA> |  0 |     0 |    <NA> |   <NA>
## 
## 
## I3. 请问你认为哪一项是当前最重要的问题?(国家认同) (I3.10) <numeric>
## # total N=168  valid N=168  mean=1.00  sd=0.00
## 
## Value |    Label |   N | Raw % | Valid % | Cum. %
## -------------------------------------------------
##     1 | 國家認同 | 168 |   100 |     100 |    100
##  <NA> |     <NA> |   0 |     0 |    <NA> |   <NA>
## 
## 
## I3. 请问你认为哪一项是当前最重要的问题?(食品安全) (I3.11) <numeric>
## # total N=891  valid N=891  mean=1.00  sd=0.00
## 
## Value |    Label |   N | Raw % | Valid % | Cum. %
## -------------------------------------------------
##     1 | 食品安全 | 891 |   100 |     100 |    100
##  <NA> |     <NA> |   0 |     0 |    <NA> |   <NA>
## 
## 
## I3. 请问你认为哪一项是当前最重要的问题?(薪资所得) (I3.12) <numeric>
## # total N=497  valid N=497  mean=1.00  sd=0.00
## 
## Value |    Label |   N | Raw % | Valid % | Cum. %
## -------------------------------------------------
##     1 | 薪資所得 | 497 |   100 |     100 |    100
##  <NA> |     <NA> |   0 |     0 |    <NA> |   <NA>
## 
## 
## I3. 请问你认为哪一项是当前最重要的问题?(水土保持) (I3.13) <numeric>
## # total N=71  valid N=71  mean=1.00  sd=0.00
## 
## Value |    Label |  N | Raw % | Valid % | Cum. %
## ------------------------------------------------
##     1 | 水土保持 | 71 |   100 |     100 |    100
##  <NA> |     <NA> |  0 |     0 |    <NA> |   <NA>
## 
## 
## I3. 请问你认为哪一项是当前最重要的问题?(政党对立) (I3.14) <numeric>
## # total N=374  valid N=374  mean=1.00  sd=0.00
## 
## Value |    Label |   N | Raw % | Valid % | Cum. %
## -------------------------------------------------
##     1 | 政黨對立 | 374 |   100 |     100 |    100
##  <NA> |     <NA> |   0 |     0 |    <NA> |   <NA>
## 
## 
## I3. 请问你认为哪一项是当前最重要的问题?(其他) (I3.88) <numeric>
## # total N=31  valid N=31  mean=1.00  sd=0.00
## 
## Value | Label |  N | Raw % | Valid % | Cum. %
## ---------------------------------------------
##     1 |  其他 | 31 |   100 |     100 |    100
##  <NA> |  <NA> |  0 |     0 |    <NA> |   <NA>
#计算总反应次数r=5598
1192+319+650+225+381+197+236+272+94+168+891+497+71+374+31
## [1] 5598
#全部样本数n=2002

#制作data frame
mydata<-data.frame(
  x1=c(1192, 319, 650, 225, 381, 197, 236, 272,  94, 168, 891, 497, 71,  371,  31),
   n=c(2002,2002,2002,2002,2002,2002,2002,2002,2002,2002,2002,2002,2002,2002,2002),
   r=c(5598,5598,5598,5598,5598,5598,5598,5598,5598,5598,5598,5598,5598,5598,5598)
)

#制作新变量
library(dplyr)
## 
## 载入程辑包:'dplyr'
## The following object is masked from 'package:sjlabelled':
## 
##     as_label
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
#以加权后样本个案数2002為计算基础的百分比
mydata1<-mutate(mydata, percent.cases=(x1/n)*100)
mydata1
##      x1    n    r percent.cases
## 1  1192 2002 5598     59.540460
## 2   319 2002 5598     15.934066
## 3   650 2002 5598     32.467532
## 4   225 2002 5598     11.238761
## 5   381 2002 5598     19.030969
## 6   197 2002 5598      9.840160
## 7   236 2002 5598     11.788212
## 8   272 2002 5598     13.586414
## 9    94 2002 5598      4.695305
## 10  168 2002 5598      8.391608
## 11  891 2002 5598     44.505495
## 12  497 2002 5598     24.825175
## 13   71 2002 5598      3.546454
## 14  371 2002 5598     18.531469
## 15   31 2002 5598      1.548452
#以加权反应次数5598為计算基础的百分比
mydata2<-mutate(mydata, percent.responses=(x1/r)*100)
mydata2
##      x1    n    r percent.responses
## 1  1192 2002 5598        21.2933190
## 2   319 2002 5598         5.6984637
## 3   650 2002 5598        11.6112897
## 4   225 2002 5598         4.0192926
## 5   381 2002 5598         6.8060021
## 6   197 2002 5598         3.5191140
## 7   236 2002 5598         4.2157914
## 8   272 2002 5598         4.8588782
## 9    94 2002 5598         1.6791711
## 10  168 2002 5598         3.0010718
## 11  891 2002 5598        15.9163987
## 12  497 2002 5598         8.8781708
## 13   71 2002 5598         1.2683101
## 14  371 2002 5598         6.6273669
## 15   31 2002 5598         0.5537692

4 连续变量的描述统计

4.1 频数分布 sjmisc::frq(); sjmisc::frq(,weights=)

“G4.2. 请问你一周会使用社交媒体几天?”

frq(TCS2015sc$H4.5) #频数分布(原始未加权)
## 
## H4.5. 請你就下列媒體所報導新聞的整體的表現給一個分數-網路 (x) <numeric>
## # total N=2002  valid N=1443  mean=60.19  sd=18.14
## 
## Value |   N | Raw % | Valid % | Cum. %
## --------------------------------------
##     0 |  27 |  1.35 |    1.87 |   1.87
##     2 |   2 |  0.10 |    0.14 |   2.01
##     3 |   2 |  0.10 |    0.14 |   2.15
##     7 |   1 |  0.05 |    0.07 |   2.22
##     9 |   1 |  0.05 |    0.07 |   2.29
##    10 |   6 |  0.30 |    0.42 |   2.70
##    11 |   1 |  0.05 |    0.07 |   2.77
##    12 |   1 |  0.05 |    0.07 |   2.84
##    13 |   1 |  0.05 |    0.07 |   2.91
##    14 |   1 |  0.05 |    0.07 |   2.98
##    15 |   1 |  0.05 |    0.07 |   3.05
##    16 |   1 |  0.05 |    0.07 |   3.12
##    20 |  10 |  0.50 |    0.69 |   3.81
##    22 |   1 |  0.05 |    0.07 |   3.88
##    25 |   3 |  0.15 |    0.21 |   4.09
##    26 |   1 |  0.05 |    0.07 |   4.16
##    27 |   1 |  0.05 |    0.07 |   4.23
##    30 |  47 |  2.35 |    3.26 |   7.48
##    32 |   2 |  0.10 |    0.14 |   7.62
##    33 |   1 |  0.05 |    0.07 |   7.69
##    35 |   4 |  0.20 |    0.28 |   7.97
##    36 |   1 |  0.05 |    0.07 |   8.04
##    37 |   1 |  0.05 |    0.07 |   8.11
##    38 |   1 |  0.05 |    0.07 |   8.18
##    39 |   2 |  0.10 |    0.14 |   8.32
##    40 |  46 |  2.30 |    3.19 |  11.50
##    44 |   2 |  0.10 |    0.14 |  11.64
##    45 |   6 |  0.30 |    0.42 |  12.06
##    46 |   1 |  0.05 |    0.07 |  12.13
##    49 |   4 |  0.20 |    0.28 |  12.40
##    50 | 316 | 15.78 |   21.90 |  34.30
##    51 |   8 |  0.40 |    0.55 |  34.86
##    52 |   1 |  0.05 |    0.07 |  34.93
##    53 |   9 |  0.45 |    0.62 |  35.55
##    54 |   1 |  0.05 |    0.07 |  35.62
##    55 |  24 |  1.20 |    1.66 |  37.28
##    56 |   2 |  0.10 |    0.14 |  37.42
##    57 |   2 |  0.10 |    0.14 |  37.56
##    58 |   4 |  0.20 |    0.28 |  37.84
##    59 |   8 |  0.40 |    0.55 |  38.39
##    60 | 296 | 14.79 |   20.51 |  58.91
##    61 |  12 |  0.60 |    0.83 |  59.74
##    62 |  11 |  0.55 |    0.76 |  60.50
##    63 |   4 |  0.20 |    0.28 |  60.78
##    64 |   1 |  0.05 |    0.07 |  60.85
##    65 |  28 |  1.40 |    1.94 |  62.79
##    66 |   4 |  0.20 |    0.28 |  63.06
##    67 |   5 |  0.25 |    0.35 |  63.41
##    68 |   1 |  0.05 |    0.07 |  63.48
##    69 |   2 |  0.10 |    0.14 |  63.62
##    70 | 183 |  9.14 |   12.68 |  76.30
##    71 |   5 |  0.25 |    0.35 |  76.65
##    72 |   8 |  0.40 |    0.55 |  77.20
##    73 |   6 |  0.30 |    0.42 |  77.62
##    74 |   3 |  0.15 |    0.21 |  77.82
##    75 |  46 |  2.30 |    3.19 |  81.01
##    76 |   5 |  0.25 |    0.35 |  81.36
##    77 |   2 |  0.10 |    0.14 |  81.50
##    78 |   3 |  0.15 |    0.21 |  81.70
##    79 |   1 |  0.05 |    0.07 |  81.77
##    80 | 149 |  7.44 |   10.33 |  92.10
##    81 |   3 |  0.15 |    0.21 |  92.31
##    82 |   1 |  0.05 |    0.07 |  92.38
##    83 |   2 |  0.10 |    0.14 |  92.52
##    85 |  24 |  1.20 |    1.66 |  94.18
##    86 |   2 |  0.10 |    0.14 |  94.32
##    87 |   1 |  0.05 |    0.07 |  94.39
##    89 |   1 |  0.05 |    0.07 |  94.46
##    90 |  46 |  2.30 |    3.19 |  97.64
##    91 |   4 |  0.20 |    0.28 |  97.92
##    92 |   3 |  0.15 |    0.21 |  98.13
##    93 |   2 |  0.10 |    0.14 |  98.27
##    94 |   5 |  0.25 |    0.35 |  98.61
##    95 |   3 |  0.15 |    0.21 |  98.82
##    97 |   1 |  0.05 |    0.07 |  98.89
##    98 |   2 |  0.10 |    0.14 |  99.03
##    99 |   1 |  0.05 |    0.07 |  99.10
##   100 |  13 |  0.65 |    0.90 | 100.00
##  <NA> | 559 | 27.92 |    <NA> |   <NA>
frq(TCS2015sc$H4.5, weights =TCS2015sc$weight1) #频数分布(加权后)
## 
## H4.5. 請你就下列媒體所報導新聞的整體的表現給一個分數-網路 (xw) <numeric>
## # total N=1468  valid N=1468  mean=60.32  sd=18.18
## 
## Value |   N | Raw % | Valid % | Cum. %
## --------------------------------------
##     0 |  26 |  1.77 |    1.77 |   1.77
##     2 |   2 |  0.14 |    0.14 |   1.91
##     3 |   2 |  0.14 |    0.14 |   2.04
##     7 |   1 |  0.07 |    0.07 |   2.11
##     9 |   1 |  0.07 |    0.07 |   2.18
##    10 |   6 |  0.41 |    0.41 |   2.59
##    11 |   1 |  0.07 |    0.07 |   2.66
##    12 |   1 |  0.07 |    0.07 |   2.72
##    13 |   1 |  0.07 |    0.07 |   2.79
##    14 |   1 |  0.07 |    0.07 |   2.86
##    15 |   1 |  0.07 |    0.07 |   2.93
##    16 |   1 |  0.07 |    0.07 |   3.00
##    20 |  10 |  0.68 |    0.68 |   3.68
##    22 |   1 |  0.07 |    0.07 |   3.75
##    25 |   3 |  0.20 |    0.20 |   3.95
##    26 |   1 |  0.07 |    0.07 |   4.02
##    27 |   1 |  0.07 |    0.07 |   4.09
##    30 |  48 |  3.27 |    3.27 |   7.36
##    32 |   2 |  0.14 |    0.14 |   7.49
##    33 |   1 |  0.07 |    0.07 |   7.56
##    35 |   4 |  0.27 |    0.27 |   7.83
##    36 |   1 |  0.07 |    0.07 |   7.90
##    37 |   1 |  0.07 |    0.07 |   7.97
##    38 |   2 |  0.14 |    0.14 |   8.11
##    39 |   2 |  0.14 |    0.14 |   8.24
##    40 |  47 |  3.20 |    3.20 |  11.44
##    44 |   2 |  0.14 |    0.14 |  11.58
##    45 |   6 |  0.41 |    0.41 |  11.99
##    46 |   1 |  0.07 |    0.07 |  12.06
##    49 |   4 |  0.27 |    0.27 |  12.33
##    50 | 319 | 21.73 |   21.73 |  34.06
##    51 |   7 |  0.48 |    0.48 |  34.54
##    52 |   1 |  0.07 |    0.07 |  34.60
##    53 |  10 |  0.68 |    0.68 |  35.29
##    54 |   1 |  0.07 |    0.07 |  35.35
##    55 |  24 |  1.63 |    1.63 |  36.99
##    56 |   2 |  0.14 |    0.14 |  37.13
##    57 |   2 |  0.14 |    0.14 |  37.26
##    58 |   4 |  0.27 |    0.27 |  37.53
##    59 |   8 |  0.54 |    0.54 |  38.08
##    60 | 302 | 20.57 |   20.57 |  58.65
##    61 |  13 |  0.89 |    0.89 |  59.54
##    62 |  10 |  0.68 |    0.68 |  60.22
##    63 |   4 |  0.27 |    0.27 |  60.49
##    64 |   1 |  0.07 |    0.07 |  60.56
##    65 |  29 |  1.98 |    1.98 |  62.53
##    66 |   3 |  0.20 |    0.20 |  62.74
##    67 |   5 |  0.34 |    0.34 |  63.08
##    68 |   1 |  0.07 |    0.07 |  63.15
##    69 |   2 |  0.14 |    0.14 |  63.28
##    70 | 182 | 12.40 |   12.40 |  75.68
##    71 |   6 |  0.41 |    0.41 |  76.09
##    72 |   8 |  0.54 |    0.54 |  76.63
##    73 |   5 |  0.34 |    0.34 |  76.98
##    74 |   3 |  0.20 |    0.20 |  77.18
##    75 |  49 |  3.34 |    3.34 |  80.52
##    76 |   5 |  0.34 |    0.34 |  80.86
##    77 |   2 |  0.14 |    0.14 |  80.99
##    78 |   3 |  0.20 |    0.20 |  81.20
##    79 |   1 |  0.07 |    0.07 |  81.27
##    80 | 155 | 10.56 |   10.56 |  91.83
##    81 |   3 |  0.20 |    0.20 |  92.03
##    82 |   1 |  0.07 |    0.07 |  92.10
##    83 |   2 |  0.14 |    0.14 |  92.23
##    85 |  27 |  1.84 |    1.84 |  94.07
##    86 |   2 |  0.14 |    0.14 |  94.21
##    87 |   1 |  0.07 |    0.07 |  94.28
##    89 |   1 |  0.07 |    0.07 |  94.35
##    90 |  47 |  3.20 |    3.20 |  97.55
##    91 |   4 |  0.27 |    0.27 |  97.82
##    92 |   3 |  0.20 |    0.20 |  98.02
##    93 |   2 |  0.14 |    0.14 |  98.16
##    94 |   7 |  0.48 |    0.48 |  98.64
##    95 |   3 |  0.20 |    0.20 |  98.84
##    97 |   1 |  0.07 |    0.07 |  98.91
##    98 |   2 |  0.14 |    0.14 |  99.05
##    99 |   1 |  0.07 |    0.07 |  99.11
##   100 |  13 |  0.89 |    0.89 | 100.00
##  <NA> |   0 |  0.00 |    <NA> |   <NA>

4.2 中位数 base::median(, na.rm=TRUE); sjstats::weighted_median(, weights=)

median(TCS2015sc$H4.5,na.rm=TRUE)#中位数(原始未加权)
## [1] 60
library(sjstats)
weighted_median(TCS2015sc$H4.5, weights=TCS2015sc$weight1)#中位数(加权后)
## [1] 60

4.3 平均数 base::mean(, na.rm=TRUE); sjstats::weighted_mean(, weights=)

mean(TCS2015sc$H4.5,na.rm=TRUE) #平均数(原始未加权)
## [1] 60.19335
library(sjstats)
weighted_mean(TCS2015sc$H4.5, weights=TCS2015sc$weight1) #平均数(加权后)
## [1] 60.32253

4.4 标准差与方差 base::sd(, na.rm=TRUE); sjstats::weighted_sd(, weights=)

sd1<-sd(TCS2015sc$H4.5,na.rm=TRUE)
sd1 #标准差(原始未加权)
## [1] 18.14274
sd1^2 #方差(原始未加权)
## [1] 329.1588
library(sjstats)
sd2<-weighted_sd(TCS2015sc$H4.5, weights=TCS2015sc$weight1)
sd2 #标准差(加权后)
## [1] 18.17824
sd2^2 #方差(加权后)
## [1] 330.4483

4.5 全距与四分位距 sjmisc::descr(); sjmisc::descr(, weights=)

library(sjmisc)
descr(TCS2015sc, H4.5) #原始未加权
## 
## ## Basic descriptive statistics
## 
##   var    type                                                     label    n
##  H4.5 numeric H4.5. 請你就下列媒體所報導新聞的整體的表現給一個分數-網路 1443
##  NA.prc  mean    sd   se md trimmed       range iqr  skew
##   27.92 60.19 18.14 0.48 60   61.35 100 (0-100)  20 -0.76
descr(TCS2015sc, H4.5, weights=TCS2015sc$weight1) #加权后
## 
## ## Basic descriptive statistics
## 
##   var    type                                                     label    n
##  H4.5 numeric H4.5. 請你就下列媒體所報導新聞的整體的表現給一個分數-網路 1470
##  NA.prc  mean    sd   se       range iqr  skew
##   27.92 60.32 18.18 0.48 100 (0-100)  20 -0.76

4.6 四分位数 poliscidata::wtd.quantile(); poliscidata::wtd.quantile(,weight=)

library(poliscidata)
## Registered S3 method overwritten by 'gdata':
##   method         from  
##   reorder.factor gplots
#0%, 25%, 50%, 75%分位数 (原始未加权)
wtd.quantile(TCS2015sc$H4.5)
##   0%  25%  50%  75% 100% 
##    0   50   60   70  100
#0%, 25%, 50%, 75%分位数 (加权后)
wtd.quantile(TCS2015sc$H4.5, weight=TCS2015sc$weight1)
##   0%  25%  50%  75% 100% 
##    0   50   60   70  100

4.7 自訂分位数 poliscidata::wtd.quantile(); poliscidata::wtd.quantile(,weight=)

#自訂分位数(原始未加权)
wtd.quantile(TCS2015sc$H4.5, weight=NULL,
             c(.10, .20, .25, .30, .40, .50, .60, .70, .75, .80, .90))
## 10% 20% 25% 30% 40% 50% 60% 70% 75% 80% 90% 
##  40  50  50  50  60  60  62  70  70  75  80
#自訂分位数(加权后)
wtd.quantile(TCS2015sc$H4.5, weight=TCS2015sc$weight1,
             c(.10, .20, .25, .30, .40, .50, .60, .70, .75, .80, .90))
## 10% 20% 25% 30% 40% 50% 60% 70% 75% 80% 90% 
##  40  50  50  50  60  60  62  70  70  75  80

4.8 直方图 sjPlot::plot_frq(, type=“histogram”);sjPlot::plot_frq(, type=“histogram”,weight.by=)

library(sjPlot)
#直方图(原始未加权)
plot_frq(TCS2015sc$H4.5, type = "histogram", show.mean = T)

#直方图(加权后)
plot_frq(TCS2015sc$H4.5, type = "histogram", show.mean = T, 
         weight.by = TCS2015sc$weight1)

4.9 直方图+正态曲线图 sjPlot::plot_frq(, type=“histogram”,normal.curve = TRUE);sjPlot::plot_frq(, type=“histogram”,normal.curve = TRUE,weight.by=)

library(sjPlot)
#直方图+正态曲线图(原始未加权)
plot_frq(TCS2015sc$H4.5, type = "histogram", normal.curve = TRUE, show.mean = T)

#直方图+正态曲线图(加权后)
plot_frq(TCS2015sc$H4.5, type = "histogram",normal.curve = TRUE,  show.mean = T,
         weight.by = TCS2015sc$weight1)

4.10 直方图+密度图 sjPlot::plot_frq(, type=“density”);sjPlot::plot_frq(, type=“density”,weight.by=)

library(sjPlot)
#直方图+密度图(原始未加权)
plot_frq(TCS2015sc$H4.5, type = "density")

#直方图+密度图(加权后)
plot_frq(TCS2015sc$H4.5, type = "density",weight.by = TCS2015sc$weight1)

4.11 折线图 sjPlot::plot_frq(, type=“line”);sjPlot::plot_frq(, type=“line”,weight.by=)

library(sjPlot)
#折线图(原始未加权)
plot_frq(TCS2015sc$H4.5, type = "line", show.values = FALSE)

#折线图(加权后)
plot_frq(TCS2015sc$H4.5, type = "line", show.values = FALSE, 
         weight.by= TCS2015sc$weight1)

4.12 箱型图 sjPlot::plot_frq(, type=“boxplot”); sjPlot::plot_frq(,type=“boxplot”,weight.by=)

library(sjPlot)
#"H4.5. 請你就下列媒體所報導新聞的整體的表現給一個分數-網路" 
#箱型图(原始未加权)
plot_frq(TCS2015sc$H4.5, type = "boxplot")
## Warning: `fun.y` is deprecated. Use `fun` instead.

#箱型图(加权后)
plot_frq(TCS2015sc$H4.5, type = "boxplot", weight.by= TCS2015sc$weight1)
## Warning: `fun.y` is deprecated. Use `fun` instead.

4.13 小提琴图 sjPlot::plot_frq(,type=“violin”);sjPlot::plot_frq(,type=“violin”,weight.by=)

library(sjPlot)
#"H4.5. 請你就下列媒體所報導新聞的整體的表現給一個分數-網路" 
#小提琴图(原始未加权)
plot_frq(TCS2015sc$H4.5, type = "violin")
## Warning: `fun.y` is deprecated. Use `fun` instead.

#箱型图(加权后)
plot_frq(TCS2015sc$H4.5, type = "violin", weight.by= TCS2015sc$weight1)
## Warning: `fun.y` is deprecated. Use `fun` instead.

rm(list=ls()) #清除记忆体中所有物件与资料

5 本章小结

此处将本章所使用到的R套件与函数摘录如下表,供学习者快速查阅。

套件 函数 说明
base setwd() 设定当前工作目录
getwd() 显示当前工作目录
install.packages() 下载套件
library() 调用套件
save() 将档案存成R数据资料档格式(*.rda)
load() 载入R数据资料档(*.rda)
head() 呈现数据档前六笔个案观察值
pie() 呈现饼图
data.frame() 产生一个资料框
median(, na.rm=TRUE) 呈现中位数(排除缺失值)
mean(, na.rm=TRUE) 呈现平均数(排除缺失值)
sd(, na.rm=TRUE) 呈现标准差(排除缺失值)
rm(list=ls()) 去除工作环境中所有的数据物件
dplyr mutate() 创建新变量
sjlabelled read_spss() 将SPSS格式数据(*.sav)汇入到R
sjmisc frq() 呈现变量的频数分布
frq(, sort= c(“asc”)) 呈现变量的频数分布(频数升幂)
frq(, sort= c(“desc”)) 呈现变量的频数分布(频数降幂)
descr() 呈现基本的描述统计(包括四分位距)
find() 寻找特定变量
sjPlot plot_frq(, type=“bar”) 呈现条形图
plot_frq(, type=“histogram”) 呈现直方图
plot_frq(, type=“histogram”,
normal.curve = TRUE) 呈现直方图+正态曲线图
plot_frq(, type=“density”) 呈现直方图+密度图
plot_frq(, type=“line”) 呈现折线图
plot_frq(, type=“boxplot”) 呈现箱型图
plot_frq(, type=“violin”) 呈现小提琴图
sjstats weighted_median() 呈现中位数(加权后)
weighted_mean() 呈现平均数(加权后)
weighted_sd() 呈现标准差(加权后)
poliscidata wtd.quantile() 呈现四分位数或自订分位数