我们通常会将R的工作环境先进行一些设置,这些设置包括了「设定当前工作目录」、「设定系統中文文字编码」、以及「设定绘图物件中的中文文字」等项,以下是一些操作范例。
#呈现code 与output
knitr::opts_chunk$set(echo = TRUE)
#设定当前工作目录(请选择一个你自己的工作目录)
setwd("/Users/simonfair/Desktop/量化研究数据分析/Ch3数据导入")
#显示目前工作目录
getwd()
## [1] "/Users/simonfair/Desktop/量化研究数据分析/Ch3数据导入"
#设定系統中文文字編碼 (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)
在设置工作环境之后,现以一份简单的调查问卷为例,展示如何将问卷所得资料转汇入到R环境,成为R资料档,以便进行后续的数据分析。
假设有一份问卷,包含下列一些题目:
Q1. 请问您的性别? 01.男 02.女
Q2. 请问您是大几的学生? 01.大一 02.大二 03.大三 04.大四
Q3. 请问您目前就读的专业是什么? 01.新闻学 02.编辑出版学 03.传播学 04.网络与新媒体 05.数字媒体艺术 06.数字媒体技术
Q4. 平均来说,请问您一个月吃饭大概需要花多少钱? 01. 500以下 02. 501-1000 03. 1001-1500 04. 1501-2000 05. 2001以上
Q5. 总体来说,对于学校食堂所提供的餐食服务,您满不满意? 01.非常不满意 02.不太满意 03.一般/普通 04.还算满意 05.非常满意
假如研究者将受访者的回答数据,分别以“Table”,“CSV”,“Excel”, “Stata”, “SPSS”, 等不同数据的格式加以录入,哪我们如何将这些不同格式的外部数据, 加以读取并汇入到R呢?
#本章學習者須先下載R相關套件,之後方能正常運行 install.packages(“knitr”) install.packages(“readxl”) install.packages(“sjlabelled”) install.packages(“sjmisc”) install.packages(“sjPlot”)
先看一下Table数据(stfood2019table.txt)的格式示例:
接下来,我们将当前工作目录下的“stfood2019table.txt”档案,透过R的“read.table()”函数将 数据汇入进R,将汇进来的档名命名为stfood2019table,并使用“head()”函数,呈现 stfood2019table此一数据的的前六笔资料。
#将表格数据汇入到R
stfood2019table<- read.table("stfood2019table.txt", sep=",", header=TRUE)
#看前六笔资料
head(stfood2019table)
## Q1性别 Q2年级 Q3专业 Q4每月吃饭花费 Q5对学校食堂的满意度
## 1 02.女 大二 04.网络与新媒体 03.1001-1500 04.还算满意
## 2 01.男 大二 04.网络与新媒体 03.1001-1500 04.还算满意
## 3 02.女 大三 03.传播学 04.1501-2000 04.还算满意
## 4 02.女 大二 04.网络与新媒体 02.501-1000 04.还算满意
## 5 01.男 大二 04.网络与新媒体 04.1501-2000 04.还算满意
## 6 02.女 大二 04.网络与新媒体 05.2001以上 02.不太满意
先看一下CSV数据(stfood2019.csv)的格式示例:
CSV数据外观示例
接下来,我们将当前工作目录下的“stfood2019.csv”档案,透过R的“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
Excel数据(stfood2019.xls)的外观如下:
Excel数据外观示例
接下来,我们将当前工作目录下的“stfood2019.xls”档案,透过R“readx1”套件中的 “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
Stata数据(stfood2019.dta)的外观如下:
Stata数据外观示例
接下来,我们将当前工作目录下的“stfood2019.dta”档案,透过R“sjlabelled”套件中的 “read_stata()”函数将数据汇入进R,将汇进来的档名命名为stfood2019DTA,并使用 “head()”函数,呈现stfood2019DTA此一数据的前六笔资料。
#调用"sjlabelled" 套件
library(sjlabelled)
#将Stata数据汇入到R
stfood2019DTA <- read_stata("stfood2019.dta")
#看前六笔资料
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
SPSS数据(stfood2019.sav)的外观如下:
SPSS数据外观示例
接下来,我们将当前工作目录下的“stfood2019.sav”档案,透过R“sjlabelled”套件中的 “read_spss()”函数将数据汇入进R,将汇进来的档名命名为stfood2019SAV,并使用 “head()”函数,呈现stfood2019SAV此一数据的前六笔资料。
#调用"sjlabelled" 套件
library(sjlabelled)
#将SPSS数据汇入到R
stfood2019SAV <- read_spss("stfood2019.sav")
#看前六笔资料
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
另外,我们可以使用“knitr”套件中的“kable()”函数,将数据以kable表格格式显示, 并增加表格的表头标题。
knitr::kable(stfood2019SAV[1:6,], #呈现前六笔资料
caption = " A Knitr kable") #表头标题名称
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 |
此外,我们可以在RStudio的Console视窗,输入“?knitr::kable”,看看自订表格的其他方式 (说明内容会显示在RStudio的Help标签页)。
我们可以使用“save()”函数,将从外部汇进来的档案(例如Excel,SPSS资料档)转存成R数据 资料档(.rda or .RData)。具体语法例示如下:
#将从外部汇进来的档案(例如Excel),转存成R数据资料档(*.rda)
save(stfood2019XLS, file = "stfood2019XLS.rda")
#将从外部汇进来的档案(例如SPSS),转存成R数据资料档(*.rda)
save(stfood2019SAV, file = "stfood2019SAV.rda")
可以使用“load()”函数,将R数据资料档(.rda or .RData)载入到RStudio的记忆体中。
#从目前工作目录中,把R数据资料档载入进来
load("stfood2019XLS.rda")
R数据档被载入后, 可以使用“head()”函数,呈现使用中R数据资料档的前六笔资料; 或使用“tail()”函数,呈现后六笔资料。 使用“dim()”函数,查看使用中的R数据资料档包含了几笔资料、几个变量。 使用“names()”函数,查看R数据料档中所有变量的变量名称。 使用“View()”函数,可以在RStudio开启另外一个小窗口,检视使用中数据所有的变量与个案。 使用“fix()”函数,可以在RStudio开启另外一个小窗口,检视并修正变量的数据代码。
#查看前六笔资料
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
#查看后六笔资料
tail(stfood2019XLS)
## # A tibble: 6 × 5
## Q1 Q2 Q3 Q4 Q5
## <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2 3 1 2 4
## 2 2 3 1 3 3
## 3 2 3 1 3 4
## 4 2 3 1 2 2
## 5 1 4 5 5 4
## 6 1 4 5 5 4
#查看R数据料档中包含了几笔资料,几个变量
dim(stfood2019XLS)
## [1] 1058 5
#查看R数据料档中所有变量的变量名称
names(stfood2019XLS)
## [1] "Q1" "Q2" "Q3" "Q4" "Q5"
##开启新窗口,检视使用中数据所有的变量与个案。
View(stfood2019XLS)
## Warning in system2("/usr/bin/otool", c("-L", shQuote(DSO)), stdout = TRUE): 运
## 行命令''/usr/bin/otool' -L '/Library/Frameworks/R.framework/Resources/modules/
## R_de.so''的状态是1
#开启新窗口,检视并可修正变量的数据代码。
fix(stfood2019XLS)
## Warning in system2("/usr/bin/otool", c("-L", shQuote(DSO)), stdout = TRUE): 运
## 行命令''/usr/bin/otool' -L '/Library/Frameworks/R.framework/Resources/modules/
## R_de.so''的状态是1
View数据外观示例
fix数据外观示例
变量(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)
可以透过“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 ...
从外部数据汇进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("男", "女"))
#Q2
stfood2019XLS$Q2 <- set_label(stfood2019XLS$Q2,
label = "Q2请问您是大几的学生")
stfood2019XLS$Q2 <- set_labels(stfood2019XLS$Q2,
labels = c("大一", "大二", "大三", "大四"))
#Q3
stfood2019XLS$Q3 <- set_label(stfood2019XLS$Q3,
label = "Q3请问您目前就读的专业")
stfood2019XLS$Q3 <- set_labels(stfood2019XLS$Q3,
labels = c("新闻学", "编辑出版学", "传播学", "网络与新媒体",
"数字媒体艺术","数字媒体技术"))
#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以上"))
#Q5
stfood2019XLS$Q5 <- set_label(stfood2019XLS$Q5,
label = "Q5总体来说,对于食堂所提供的餐食服务,您满不满意")
stfood2019XLS$Q5 <- set_labels(stfood2019XLS$Q5,
labels = c("非常不满意", "不太满意", "一般/普通",
"还算满意", "非常满意"))
可以透过“sjlabelled”套件的“get_label()”函数查看数据中每个变量的标签说明, “get_labels()”函数查看每个变量值的标签说明。
library(sjlabelled)
get_label(stfood2019XLS)
## Q1
## "Q1请问您的性别"
## Q2
## "Q2请问您是大几的学生"
## Q3
## "Q3请问您目前就读的专业"
## Q4
## "Q4平均来说,请问您一个月吃饭大概花多少钱"
## Q5
## "Q5总体来说,对于食堂所提供的餐食服务,您满不满意"
get_labels(stfood2019XLS)
## $Q1
## [1] "男" "女"
##
## $Q2
## [1] "大一" "大二" "大三" "大四"
##
## $Q3
## [1] "新闻学" "编辑出版学" "传播学" "网络与新媒体" "数字媒体艺术"
## [6] "数字媒体技术"
##
## $Q4
## [1] "500以下" "501-1000" "1001-1500" "1501-2000" "2001以上"
##
## $Q5
## [1] "非常不满意" "不太满意" "一般/普通" "还算满意" "非常满意"
在设置完成变量标签与变量值标签之后,我们就可以先做个变量的频数分布。在R的基本 函数中,可以使用“table()”函数,呈现变量的频数;使用prop.table(table())函数, 呈现变量各个数值的比例(百分比)。
table(stfood2019XLS$Q1) #呈现频数
##
## 1 2
## 415 643
prop.table(table(stfood2019XLS$Q1)) #呈现比例(百分比)
##
## 1 2
## 0.3922495 0.6077505
我们可以进一步调用“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) #频数分布结果以纯文字形式呈现在RStudio的Console视窗
##
## 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(stfood2019XLS$Q4, out = "browser")#频数分布结果以使用者预设的浏览器开启
val | label | frq | raw.prc | valid.prc | cum.prc | |
---|---|---|---|---|---|---|
1 | 500以下 | 10 | 0.95 | 0.95 | 0.95 | |
2 | 501-1000 | 136 | 12.85 | 12.85 | 13.80 | |
3 | 1001-1500 | 387 | 36.58 | 36.58 | 50.38 | |
4 | 1501-2000 | 418 | 39.51 | 39.51 | 89.89 | |
5 | 2001以上 | 107 | 10.11 | 10.11 | 100.00 | |
NA | NA | 0 | 0.00 | NA | NA | |
total N=1058 · valid N=1058 · x̄=3.45 · σ=0.87 |
frq(stfood2019XLS$Q5, out = "viewer")#频数分布结果呈现在RStudio的Viewer视窗
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 |
browser输出外观示例
View输出外观示例
以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数据资料档外观示例如下:
SPSS数据资料档外观示例
#调用"sjlabelled" 套件
library(sjlabelled)
#将SPSS数据汇入到R
stfood2019SAV <- read_spss("stfood2019.sav")
#调用"sjmisc"套件
library(sjmisc)
#频数分布(一次呈现数据资料档中所有变量的频数分布)
frq(stfood2019SAV)
##
## 1.请问您的性别是? (Q1) <numeric>
## # 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) <numeric>
## # 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) <numeric>
## # 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) <numeric>
## # 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) <numeric>
## # 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>
我们可以调用“sjPlot”套件中的“view_df”函数,一次清楚呈现各个变量的名称(Names)、 变量标签(Variable Labels)、变量值(Values)、变量值标签(Value Labels)、 频数分布(Freq.)以及百分比(%)等相关资讯。 这些资讯构成了我们常说的“编码簿”(coding book)
#调用"sjPlot"套件
library(sjPlot)
## #refugeeswelcome
#呈现编码簿
view_df(stfood2019SAV, #指明R资料档的档案名称
show.na = TRUE, #呈现缺失值
show.frq = TRUE, #呈现频数分布
show.prc = TRUE) #呈现百分比
ID | Name | Label | missings | Values | Value Labels | Freq. | % |
---|---|---|---|---|---|---|---|
1 | Q1 | 1.请问您的性别是? | 0 (0.00%) |
1 2 |
01.男 02.女 |
415 643 |
39.22 60.78 |
2 | Q2 |
|
0 (0.00%) |
1 2 3 4 |
大一 大二 大三 大四 |
243 299 227 289 |
22.97 28.26 21.46 27.32 |
3 | Q3 |
|
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 |
|
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 | 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套件与函数摘录如下表,供学习者快速查阅。
套件 | 函数 | 说明 |
---|---|---|
base | install.packages() | 下载套件 |
library() | 调用套件 | |
read.table() | 将Table格式数据资料档汇入到R | |
read.csv() | 将CSV格式数据资料档汇入到R | |
save() | 将档案存成R数据资料档格式(*.rda) | |
load() | 载入R数据资料档(*.rda) | |
head() | 查看R数据的前六笔资料 | |
tail() | 查看R数据的后六笔资料 | |
dim() | 查看R数据中包含几笔资料,几个变量 | |
names() | 查看变量的名称 | |
View() | 在RStudio新开窗口,检视数据资料 | |
fix() | 在RStudio新开窗口,检视并修正数据资料 | |
class() | 查看变量的属性 | |
str() | 查看变量的属性、分类数目、以及前几笔资料 | |
table() | 呈现变量的频数 | |
prop.table() | 呈现变量的频数比例(百分比) | |
rm(list=ls()) | 去除R当前工作环境中所有的数据与物件 | |
knitr | kable() | 将变量资料以kable表格方式呈现 |
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数据资料的编码簿 |