R讲义:数据汇入/变量标签/频数分布

Author
Affiliation

刘念夏教授, PhD

Published

25 September 2025

1 分析前的环境设置

1.1 下载安装套件包

本章学习者須先下载安装相關套件包,方能正常運行。

#下载安装套件包
#如果之前有下载过,会跳过不下载;如果之前没有下载过,会下载安装套件包
if (!require("showtext")) install.packages("showtext")
载入需要的程序包:showtext
载入需要的程序包:sysfonts
载入需要的程序包:showtextdb
if (!require("knitr")) install.packages("knitr")
载入需要的程序包:knitr
if (!require("readxl")) install.packages("readxl")
载入需要的程序包:readxl
if (!require("sjlabelled")) install.packages("sjlabelled")
载入需要的程序包:sjlabelled
if (!require("sjmisc")) install.packages("sjmisc")
载入需要的程序包:sjmisc
if (!require("sjPlot")) install.packages("sjPlot")
载入需要的程序包:sjPlot
if (!require("rio")) install.packages("rio")
载入需要的程序包:rio

1.2 环境设置

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

#设置工作目录(你自己的工作目录)
setwd("/Users/simonfair/Desktop/量化研究数据分析/R Ch2 数据导入")
# 查看目前的工作目录
getwd() #
[1] "/Users/simonfair/Desktop/量化研究数据分析/R Ch2 数据导入"
#设置系統中文文字编码(简体中文)
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) 
#使绘图物件中的中文文字能正确呈现
showtext_auto(enable = TRUE)

在设置工作环境之后,现以一份简单的调查问卷为例,展示如何将问卷资料汇入到R环境,成为R数据档,以便进行后续的数据分析。

2 问卷例示

假设有一份问卷,包含下列一些题目,如图2-1。

图2-1 问卷题目

假如研究者将受访者的回答数据,分别以 “CSV”, “Excel”, “Stata”, “SPSS”, 等不同数据的格式加以录入,哪我们如何将这些不同格式的外部数据,加以读取并汇入到R呢?以下分别说明。

3 读取外部数据

3.1 CSV data ; read.csv( )

先看一下CSV数据(stfood2019.csv)的格式示例,如图2-2。

图2-2 CSV数据外观示例

接下来,我们将当前工作目录下的 “stfood2019.csv” 档案,透过 “read.csv( )” 函数,将数据汇入进R,将汇进来的档名命名为 “stfood2019CSV”,并使用 “head( )” 函数,呈现 “stfood2019CSV” 此一数据的前六笔资料。

#将CSV数据汇入到R
stfood2019CSV <- read.csv("stfood2019.csv") 
#看前六笔资料
head(stfood2019CSV)
  Q1 Q2 Q3 Q4 Q5
1  2  2  4  3  4
2  1  2  4  3  4
3  2  3  3  4  4
4  2  2  4  2  4
5  1  2  4  4  4
6  2  2  4  5  2

3.2 Excel data ; readxl::read_excel( )

Excel数据(stfood2019.xls)的外观如下,如图2-3。

图2-3 Excel数据外观示例

接下来,我们将当前工作目录下的 “stfood2019.xls” 档案,透过 “readxl” 套件包的 “read_excel( )” 函数,将数据汇入进R,将汇进来的档名命名为 “stfood2019XLS”,并使用 “head( )” 函数,呈现 “stfood2019XLS” 此一数据前六笔资料。

#加载"readx1" 套件包
library(readxl) 
#将excel数据汇入到R
stfood2019XLS <- read_excel("stfood2019.xls")
#看前六笔资料
head(stfood2019XLS)
# A tibble: 6 × 5
     Q1    Q2    Q3    Q4    Q5
  <dbl> <dbl> <dbl> <dbl> <dbl>
1     2     2     4     3     4
2     1     2     4     3     4
3     2     3     3     4     4
4     2     2     4     2     4
5     1     2     4     4     4
6     2     2     4     5     2

3.3 Stata data ; sjlabelled::read_stata( )

Stata数据(stfood2019.dta)的外观如下,如图2-4。

图2-4 Stata数据外观示例

接下来,我们将当前工作目录下的 “stfood2019.dta” 档案,透过 “sjlabelled” 套件包的 “read_stata( )” 函数,将数据汇入进R,将汇进来的档名命名为 “stfood2019DTA”,并使用 “head( )” 函数,呈现 “stfood2019DTA” 此一数据前六笔资料。

#加载"sjlabelled" 套件包
library(sjlabelled)
#将Stata数据汇入到R
stfood2019DTA <- read_stata("stfood2019.dta")
Converting atomic to factors. Please wait...
#看前六笔资料
head(stfood2019DTA)
  Q1 Q2 Q3 Q4 Q5
1  2  2  4  3  4
2  1  2  4  3  4
3  2  3  3  4  4
4  2  2  4  2  4
5  1  2  4  4  4
6  2  2  4  5  2

3.4 SPSS data ;sjlabelled::read_spss( )

SPSS数据(stfood2019.sav)的外观如下,如图2-5。

图2-5 SPSS数据外观示例

接下来,我们将当前工作目录下的 “stfood2019.sav” 档案,透过 “sjlabelled” 套件包的 “read_spss( )” 函数,将数据汇入进R,将汇进来的档名命名为 “stfood2019SAV”,并使用 “head( )” 函数,呈现stfood2019SAV此一数据前六笔资料。

#加载"sjlabelled" 套件包
library(sjlabelled)
#将SPSS数据汇入到R
stfood2019SAV <- read_spss("stfood2019.sav")
Converting atomic to factors. Please wait...
#看前六笔资料
head(stfood2019SAV)
  Q1 Q2 Q3 Q4 Q5
1  2  2  4  3  4
2  1  2  4  3  4
3  2  3  3  4  4
4  2  2  4  2  4
5  1  2  4  4  4
6  2  2  4  5  2

3.5 读取数据的瑞士万用刀 rio::import( )

另外,我们也可以透过 “rio” 套件包的 “import( )” 函数,将不同类型的数据档,汇入到R中。

library(rio) #加载"rio" 套件包
#汇入csv数据档
stfood2019CSV <- import("stfood2019.csv") 
#汇入excel数据档
stfood2019XLS <- import("stfood2019.xls") 
#汇入stata数据档
stfood2019DTA <- import("stfood2019.dta") 
#汇入spss数据档
stfood2019SAV <- import("stfood2019.sav") 

4 存成R数据資料檔及其他類型檔案 save(,file=)

我们可以使用 “save( )” 函数,将从外部汇进来的档案,转存成R数据资料档(.rda 或 .RData)。

#将从外部汇进来的档案(例如Excel),转存成R数据资料档(*.rda)
save(stfood2019XLS, file = "stfood2019XLS.rda")
#将从外部汇进来的档案(例如SPSS),转存成R数据资料档(*.rda)
save(stfood2019SAV, file = "stfood2019SAV.rda")

5 载入R数据資料檔 load( )

可以使用 “load( )” 函数,将R数据资料档(.rda 或.RData), 载入到RStudio的记忆体中。

#从目前工作目录中,把R数据资料档载入进来
load("stfood2019XLS.rda")

6 查看R数据资料档中的资料 head( ); tail( ); dim( ); names( ); View( ); kable( )

R数据档被载入后, 可以使用 “head( )” 函数,呈现使用中R数据资料档的前六笔资料; 或使用 “tail( )” 函数,呈现后六笔资料。使用 “dim( )” 函数,查看使用中的R数据资料档包含了几笔资料、几个变量。使用 “names( )” 函数,查看R数据料档中所有变量的变量名称。使用 “View( )” 函数,可以在RStudio开启另外一个小窗口,检视使用中数据所有的变量与个案。

#查看前六笔资料
head(stfood2019XLS)
  Q1 Q2 Q3 Q4 Q5
1  2  2  4  3  4
2  1  2  4  3  4
3  2  3  3  4  4
4  2  2  4  2  4
5  1  2  4  4  4
6  2  2  4  5  2
#查看后六笔资料
tail(stfood2019XLS)
     Q1 Q2 Q3 Q4 Q5
1053  2  3  1  2  4
1054  2  3  1  3  3
1055  2  3  1  3  4
1056  2  3  1  2  2
1057  1  4  5  5  4
1058  1  4  5  5  4
#查看R数据料档中包含了几笔资料(row),几个变量(col)
dim(stfood2019XLS) #1058 row 5 col
[1] 1058    5
#查看R数据料档中所有变量的变量名称
names(stfood2019XLS)
[1] "Q1" "Q2" "Q3" "Q4" "Q5"
#将输出转化成有格式的表格
library(knitr) #加载Knitr套件包
kable(head(stfood2019XLS)) #将前六笔资料的输出转化成表格
Q1 Q2 Q3 Q4 Q5
2 2 4 3 4
1 2 4 3 4
2 3 3 4 4
2 2 4 2 4
1 2 4 4 4
2 2 4 5 2
#开启新窗口,检视使用中数据所有的变量与个案。
View(stfood2019XLS)

图2-6 检视数据档

7 将变量设置为类别变量 sjlabelled::to_factor( )

变量(variable)一般可分为 “类别变量” (categorical variables)(定类变量、定序变量)与 “数字变量” (numeric variables)(定距变量、定比变量)两大属性。R对于变量的属性设置是很敏感的,关系到不同属性的变量会适用到各自不同的统计分析方法。因此,在进行数据分析之前,研究者需针对所欲分析的变量,进行变量属性的设置。

当数据被载入到R,如果没有做任何的设置,R会将数据中的各个变量默认为 “数字变量”。假如我们要将数据中的一些变量设置为 “类别变量”,则可加载 “sjlabelled” 套件的 “to_factor( )” 函数来完成这项工作。以stfood2019XLS此一数据而言,根据调查问卷的内容,我们可以知道,stfood2019XLS数据中的五个变量(Q1~Q5)都应该被当成 “类别变量” 来看待。具体语法例示如下:

#加载sjlabelled套件
library(sjlabelled)
#将变量设置为类别变量(to_factor)
stfood2019XLS$Q1 <- to_factor(stfood2019XLS$Q1)
stfood2019XLS$Q2 <- to_factor(stfood2019XLS$Q2)
stfood2019XLS$Q3 <- to_factor(stfood2019XLS$Q3)
stfood2019XLS$Q4 <- to_factor(stfood2019XLS$Q4)
stfood2019XLS$Q5 <- to_factor(stfood2019XLS$Q5)

8 查看变量的属性 class( ); str( )

可以透过 “class( )” 函数,查看变量的属性。如果显示 “factor” 代表该变量被设置为 “类别变量”,如果显示 “numeric” 代表该变量被设置为 “数字变量”。也可以使用 “str( )”函数,同时查看变量的属性(factor vs. numeric)、分成几类(levels)(如果是类别变量的话)、以及变量的前几笔资料。

#查看变量的属性
class(stfood2019XLS$Q1)
[1] "factor"
class(stfood2019XLS$Q2)
[1] "factor"
class(stfood2019XLS$Q3)
[1] "factor"
class(stfood2019XLS$Q4)
[1] "factor"
class(stfood2019XLS$Q5)
[1] "factor"
str(stfood2019XLS$Q5)
 Factor w/ 5 levels "1","2","3","4",..: 4 4 4 4 4 2 4 3 3 4 ...

9 设置变量标签与变量值标签 sjlabelled::set_label( ); set_labels( )

从外部数据汇进R的档案(如CSV档案,Excel档案等)大部分都只有变量的数值代码,但没有变量的标签说明(variable label),也没有变量值的标签说明(value label)。 我们可以使用 “sjlabelled” 套件包的 “set_label( )” 函数,进行 “变量标签” 的设置;“set_labels( )”函数,进行 “变量值” 标签的设置。

#加载sjlabelled套件
library(sjlabelled)
#增加变量标签(set_label)与变量值标签(set_labels)
#Q1
stfood2019XLS$Q1 <- set_label(stfood2019XLS$Q1,
                   label = "Q1请问您的性别")
stfood2019XLS$Q1 <- set_labels(stfood2019XLS$Q1,
                   labels = c("男", "女"))
#Q1 (1:男 2:女)

#Q2
stfood2019XLS$Q2 <- set_label(stfood2019XLS$Q2,
       label = "Q2请问您是大几的学生")
stfood2019XLS$Q2 <- set_labels(stfood2019XLS$Q2,
       labels = c("大一", "大二", "大三", "大四"))
#Q2 (1:大一, 2:大二, 3:大三, 4:大四)

#Q3
stfood2019XLS$Q3 <- set_label(stfood2019XLS$Q3,
                    label = "Q3请问您目前就读的专业")
stfood2019XLS$Q3 <- set_labels(stfood2019XLS$Q3,
                    labels = c("新闻学", 
                               "编辑出版学", 
                               "传播学", 
                               "网络与新媒体",
                               "数字媒体艺术",
                               "数字媒体技术"))
#Q3 (1:新闻学, 2:编辑出版学, 3:传播学,4:网络与新媒体, 5:数字媒体艺术, 6:数字媒体技术) 

#Q4
stfood2019XLS$Q4 <- set_label(stfood2019XLS$Q4,
  label = "Q4平均来说,请问您一个月吃饭大概花多少钱")
stfood2019XLS$Q4 <- set_labels(stfood2019XLS$Q4,
    labels = c("500以下", 
              "501-1000", 
              "1001-1500", 
              "1501-2000",
              "2001以上"))
#Q4 (1:500以下, 2:501-1000, 3:1001-1500, 4:1501-2000, 5:2001以上)

#Q5      
stfood2019XLS$Q5 <- set_label(stfood2019XLS$Q5,
      label = "Q5总体来说,对于食堂所提供的餐食服务,您满不满意")
stfood2019XLS$Q5 <- set_labels(stfood2019XLS$Q5,
                labels = c("非常不满意", 
                           "不太满意", 
                           "一般/普通", 
                           "还算满意",
                           "非常满意"))
#Q5 (1:非常不满意, 2:不太满意, 3:一般/普通, 4:还算满意, 5:非常满意)

10 查看变量标签与变量值标签 sjlabelled::get_label( ); get_labels( )

可以透过 “sjlabelled” 套件包的 “get_label( )” 函数查看数据中每个 “变量” 的标签说明,“get_labels( )” 函数查看每个”变量值”的标签说明。

#加载sjlabelled套件
library(sjlabelled)
#查看变量标签(get_label)
get_label(stfood2019XLS)
                                                Q1 
                                  "Q1请问您的性别" 
                                                Q2 
                            "Q2请问您是大几的学生" 
                                                Q3 
                          "Q3请问您目前就读的专业" 
                                                Q4 
        "Q4平均来说,请问您一个月吃饭大概花多少钱" 
                                                Q5 
"Q5总体来说,对于食堂所提供的餐食服务,您满不满意" 
#查看变量值标签(get_labels)
get_labels(stfood2019XLS)
$Q1
[1] "男" "女"

$Q2
[1] "大一" "大二" "大三" "大四"

$Q3
[1] "新闻学"       "编辑出版学"   "传播学"       "网络与新媒体" "数字媒体艺术"
[6] "数字媒体技术"

$Q4
[1] "500以下"   "501-1000"  "1001-1500" "1501-2000" "2001以上" 

$Q5
[1] "非常不满意" "不太满意"   "一般/普通"  "还算满意"   "非常满意"  

11 频数分布

11.1 R 内建函数: table( ), prop.table( )

在设置完成变量标签与变量值标签之后,我们就可以先做个变量的频数分布。在R的内建函数中,可以使用 “table( )” 函数,呈现变量的频数;使用 “prop.table(table( ))” 函数,呈现变量各个数值的比例(百分比)。

#呈现频数
table(stfood2019XLS$Q1) 

  1   2 
415 643 
#呈现比例
prop.table(table(stfood2019XLS$Q1)) 

        1         2 
0.3922495 0.6077505 
#呈现比例(百分比)
100*prop.table(table(stfood2019XLS$Q1))

       1        2 
39.22495 60.77505 

11.2 sjmisc::frq( )

我们可以进一步使用 “sjmisc” 套件包的 “frq( )” 函数,以呈现比较精美且符合学术要求的频数分布表。“frq( )” 函数有个选项 “out”,如果都不设置,则频数分布结果会以纯文字形式(txt)呈现在RStudio的Console视窗; 如果将out选项设置为 out=“browser” or out= “b”,则频数分布结果会以使用者预设的浏览器开启; 如果将out选项设置为 out=“viewer” or out= “v”,则频数分布结果会呈现在RStudio的Viewer视窗

#加载sjmisc套件
library(sjmisc)
#频数分布(frq):以纯文字形式呈现
frq(stfood2019XLS$Q1)
Q1请问您的性别 (x) <categorical> 
# total N=1058 valid N=1058 mean=1.61 sd=0.49

Value | Label |   N | Raw % | Valid % | Cum. %
----------------------------------------------
    1 |    男 | 415 | 39.22 |   39.22 |  39.22
    2 |    女 | 643 | 60.78 |   60.78 | 100.00
 <NA> |  <NA> |   0 |  0.00 |    <NA> |   <NA>
#频数分布(frq):以RStudio的Viewer视窗呈现
frq(stfood2019XLS$Q5, out = "viewer")  
Q5总体来说,对于食堂所提供的餐食服务,您满不满意 (x) <categorical>
val label frq raw.prc valid.prc cum.prc
1 非常不满意 18 1.70 1.70 1.70
2 不太满意 103 9.74 9.74 11.44
3 一般/普通 411 38.85 38.85 50.28
4 还算满意 473 44.71 44.71 94.99
5 非常满意 53 5.01 5.01 100.00
NA NA 0 0.00 NA NA
total N=1058 · valid N=1058 · x̄=3.42 · σ=0.80

以frq(…,out=“viewer”)所产生的频数分布表为例,

  • “val” 是value的缩写,数值代码之意。

  • “label” 为变量标签之意。

  • “frq” 是frequencies的缩写,频数之意。

  • “raw.prc” 是raw percent的缩写,原始百分比之意(包含缺失值个案在内的百分比)。

  • “valid.prc” 是valid percent的缩写,有效百分比之意 (扣除缺失值个案后的百分比)。

  • “cum.prc” 是cumulative percent的缩写,累积有效百分比之意。

  • “NA” 是Not Available的缩写,遗漏值或缺失值之意。

在设置好变量标签与变量值标签后,我们就可以把数据资料档存档,以便日后直接提取时,就不需要再做一次变量标签与变量值标签设置的重复工作了。

#将已设置好标签的数据资料,存档(*.rda)
save(stfood2019XLS, file = "stfood2019XLS.rda")
#载入已设置好标签的数据资料档(*.rda)
load("stfood2019XLS.rda")
#加载"sjmisc"套件
library(sjmisc)
#频数分布
frq(stfood2019XLS$Q5)
Q5总体来说,对于食堂所提供的餐食服务,您满不满意 (x) <categorical> 
# total N=1058 valid N=1058 mean=3.42 sd=0.80

Value |      Label |   N | Raw % | Valid % | Cum. %
---------------------------------------------------
    1 | 非常不满意 |  18 |  1.70 |    1.70 |   1.70
    2 |   不太满意 | 103 |  9.74 |    9.74 |  11.44
    3 |  一般/普通 | 411 | 38.85 |   38.85 |  50.28
    4 |   还算满意 | 473 | 44.71 |   44.71 |  94.99
    5 |   非常满意 |  53 |  5.01 |    5.01 | 100.00
 <NA> |       <NA> |   0 |  0.00 |    <NA> |   <NA>

对于spss数据资料而言,一般来说研究者通常会在SPSS中将各个变量(值)的标签事先设置好,所以在汇入外部数据时,如果汇入的是SPSS数据,则通常可以不用再在R环境去设置各个变量(值)的标签,直接调用 “sjmisc” 套件包的 “frq( )” 函数,就可以呈现带有标签说明的频数分布表了。

SPSS数据档变量标签外观示例如下,如图2-7。

图2-7 SPSS数据档变量标签外观示例
#加载"sjlabelled" 套件
library(sjlabelled)
#将SPSS数据汇入到R
stfood2019SAV <- read_spss("stfood2019.sav")
Converting atomic to factors. Please wait...
#加载"sjmisc"套件
library(sjmisc)
#频数分布(一次呈现数据资料档中所有变量的频数分布)
frq(stfood2019SAV)
1.请问您的性别是? (Q1) <categorical> 
# total N=1058 valid N=1058 mean=1.61 sd=0.49

Value | Label |   N | Raw % | Valid % | Cum. %
----------------------------------------------
    1 | 01.男 | 415 | 39.22 |   39.22 |  39.22
    2 | 02.女 | 643 | 60.78 |   60.78 | 100.00
 <NA> |  <NA> |   0 |  0.00 |    <NA> |   <NA>

2. 请问您是大几的学生? (Q2) <categorical> 
# total N=1058 valid N=1058 mean=2.53 sd=1.12

Value | Label |   N | Raw % | Valid % | Cum. %
----------------------------------------------
    1 |  大一 | 243 | 22.97 |   22.97 |  22.97
    2 |  大二 | 299 | 28.26 |   28.26 |  51.23
    3 |  大三 | 227 | 21.46 |   21.46 |  72.68
    4 |  大四 | 289 | 27.32 |   27.32 | 100.00
 <NA> |  <NA> |   0 |  0.00 |    <NA> |   <NA>

3. 请问您目前就读的专业是什么? (Q3) <categorical> 
# total N=1058 valid N=1058 mean=3.10 sd=1.43

Value |           Label |   N | Raw % | Valid % | Cum. %
--------------------------------------------------------
    1 |       01.新闻学 | 166 | 15.69 |   15.69 |  15.69
    2 |   02.编辑出版学 | 223 | 21.08 |   21.08 |  36.77
    3 |       03.传播学 | 288 | 27.22 |   27.22 |  63.99
    4 | 04.网络与新媒体 | 135 | 12.76 |   12.76 |  76.75
    5 | 05.数字媒体艺术 | 215 | 20.32 |   20.32 |  97.07
    6 | 06.数字媒体技术 |  31 |  2.93 |    2.93 | 100.00
 <NA> |            <NA> |   0 |  0.00 |    <NA> |   <NA>

5. 平均来说,请问您一个月吃饭大概花多少钱? (Q4) <categorical> 
# total N=1058 valid N=1058 mean=3.45 sd=0.87

Value |        Label |   N | Raw % | Valid % | Cum. %
-----------------------------------------------------
    1 |   01.500以下 |  10 |  0.95 |    0.95 |   0.95
    2 |  02.501-1000 | 136 | 12.85 |   12.85 |  13.80
    3 | 03.1001-1500 | 387 | 36.58 |   36.58 |  50.38
    4 | 04.1501-2000 | 418 | 39.51 |   39.51 |  89.89
    5 |  05.2001以上 | 107 | 10.11 |   10.11 | 100.00
 <NA> |         <NA> |   0 |  0.00 |    <NA> |   <NA>

14.总体来说,对于食堂所提供的餐食服务,您满不满意? (Q5) <categorical> 
# total N=1058 valid N=1058 mean=3.42 sd=0.80

Value |         Label |   N | Raw % | Valid % | Cum. %
------------------------------------------------------
    1 | 01.非常不满意 |  18 |  1.70 |    1.70 |   1.70
    2 |   02.不太满意 | 103 |  9.74 |    9.74 |  11.44
    3 |  03.一般‎/普通 | 411 | 38.85 |   38.85 |  50.28
    4 |   04.还算满意 | 473 | 44.71 |   44.71 |  94.99
    5 |   05.非常满意 |  53 |  5.01 |    5.01 | 100.00
 <NA> |          <NA> |   0 |  0.00 |    <NA> |   <NA>

12 编码簿 sjPlot::view_df( )

我们可以调用 “sjPlot” 套件包的 “view_df( )” 函数,一次清楚呈现各个变量的名称(Names)、变量类型(Type)、变量标签(Variable Labels)、 变量值(Values)、变量值标签(Value Labels)、 频数分布(Freq)以及百分比(%)等相关资讯。这些资讯构成了我们常说的 “编码簿” (coding book)。

#加载"sjPlot"套件
library(sjPlot)
#呈现编码簿
view_df(stfood2019SAV,   #指明R资料档的档案名称
        show.type = TRUE, #呈现变量类型
        show.na = TRUE,  #呈现缺失值
        show.frq = TRUE, #呈现频数分布
        show.prc = TRUE) #呈现百分比 
Data frame: stfood2019SAV
ID Name Type Label missings Values Value Labels Freq. %
1 Q1 categorical 1.请问您的性别是? 0 (0.00%) 1
2
01.男
02.女
415
643
39.22
60.78
2 Q2 categorical 2. 请问您是大几的学生? 0 (0.00%) 1
2
3
4
大一
大二
大三
大四
243
299
227
289
22.97
28.26
21.46
27.32
3 Q3 categorical 3. 请问您目前就读的专业是什么? 0 (0.00%) 1
2
3
4
5
6
01.新闻学
02.编辑出版学
03.传播学
04.网络与新媒体
05.数字媒体艺术
06.数字媒体技术
166
223
288
135
215
31
15.69
21.08
27.22
12.76
20.32
2.93
4 Q4 categorical 5. 平均来说,请问您一个月吃饭大概花多少钱? 0 (0.00%) 1
2
3
4
5
01.500以下
02.501-1000
03.1001-1500
04.1501-2000
05.2001以上
10
136
387
418
107
0.95
12.85
36.58
39.51
10.11
5 Q5 categorical 14.总体来说,对于食堂所提供的餐食服务,您满不满意? 0 (0.00%) 1
2
3
4
5
01.非常不满意
02.不太满意
03.一般‎/普通
04.还算满意
05.非常满意
18
103
411
473
53
1.70
9.74
38.85
44.71
5.01

当我们的数据分析工作告一段落后,我们经常会使用 “rm(list =ls( ))” 这个函数,清除R记忆体中所有物件与资料,以便在进行下次数据分析时,R的工作环境有个全新的开始。

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

本章小结

本章所使用到的R套件包与函数,摘录如下表。

套件包 函数 说明
内建 setwd ( ) 设置当前工作目錄
getwd ( ) 显示当前工作目錄
install.packages ( ) 安装套件包
library ( ) 加载套件包
read.csv ( ) 将CSV格式数据资料档汇入到R
save ( ) 将档案存成R数据资料档格式(*.rda)
load ( ) 载入R数据资料档(*.rda)
head ( ) 查看R数据的前六笔资料
tail ( ) 查看R数据的后六笔资料
dim ( ) 查看R数据中包含几笔资料,几个变量
names ( ) 查看变量的名称
View ( ) 在RStudio新开窗口,检视数据资料
class ( ) 查看变量的属性
str ( ) 查看变量的属性及分类数目
table ( ) 呈现变量的频数
prop.table ( ) 呈现变量的频数比例(百分比)
rm (list=ls( )) 去除R当前工作环境中所有的数据与物件
readxl read_excel ( ) 将Excel格式数据资料档(*.xls)汇入到R
sjlabelled read_spss ( ) 将SPSS格式数据资料档(*.sav)汇入到R
read_stata ( ) 将Stata格式数据资料档(*.dta)汇入到R
to_factor ( ) 将变量设置为类别变量
to_numeric ( ) 将变量设置为数字变量
set_label ( ) 设置变量标签(variable label)
set_labels ( ) 设置变量值标签(value label)
get_label ( ) 查看变量标签
get_labels ( ) 查看变量值标签
sjmisc frq ( ) 呈现频数分布表
sjPlot view_df ( ) 呈现R数据资料的编码簿
rio import ( ) 将不同类型的数据档(CSV,Escel,SPSS,
Stata,SAS…)汇入到R