5.1 加载数据
加载名为sample.csv的数据并以dat为名称保存,其命令如下。
>dat<-read.csv("sample.csv")
还可以用下述方法从对话框中选择文件。
>dat<-read.csv(file.choose())
5.2 table 函数
这是用来生成列联表的函数。
> table (dat)
RESSEX N Y F86M57
5.3 管道处理与 dplyr 程序包
现在我们用“管道处理”实现上面的效果。首先给 RStudio 安装dplyr程序包,添加额外功能。
dplyr是数据科学家 Hadley Wickam{1[Hadley Wickham 是 RStudio 的首席科学家以及 Rice University 统计系的助理教授。他是著名图形可视化软件包 ggplot2 的开发者,以及其他许多被广泛使用的软件包的作者,代表作品如 plyr、reshape2 等。——译者注]} 开发的扩展功能,其中包含许多好用的函数,让 R 能够更高效直观地操作数据。它有一种奇特的功能——管道运算符。借助管道运算符,我们可以一次性执行一连串数据处理。dplyr如今已受到全世界众多 R 用户的推崇,其普及率也在日益上升。
举个例子,用管道运算符求 1 到 6 的整数的平均值(这里将mean(1:6)视为传统方法)。
> library (dplyr)> 1:6 %>% mean
[1]3.5
有了这一功能,前面例子中的table(dat)可以改写成下面这样。各位可以想象成用%> %(管道运算符)让数据从左边“流向”右边。
> dat %>% table
RESSEX N Y F86M57
5.4 chisq.test 函数
这是进行独立性检验(卡方检验)的函数。举个例子,现在要分析男女对 A 候选人的支持率是否相等。
>chisq.test(dat2)
Pearson's Chi-squared test with Yates'continuity correctiondata: dat2X-squared =0.15476, df =1, p-value=0.694
这里的P值超过了 5%,所以保留零假设“男女对 A 候选人的支持率是独立的”。
卡方检验同样可以通过管道处理来执行。这里我们借助正文中商业街调查问卷的例子,看看店主与顾客的意见之间是否具有显著偏差。其执行方法如下。
>survey<-read.csv("survey.csv")>survey%>%select(立场, 回答6) %>%table%>%chisq.test
Pearson's Chi-squared test
data: .
X-squared = 55.489, df = 3, p-value = 5.4e-12
结果不足 5%,所以抛弃零假设“顾客与店主的意见无显著偏差”,采信备择假设“顾客与店主的意见存在偏差”。使用管道运算符处理数据时,通常会连用多个%> %。上面执行的命令就是一个典型。
「survey %>%select(立场, 回答6) %>% table %>% chisq.test」
现在我们用文字给上面这一连串处理做个补充说明。
“数据名%>%选择待分析的列(select)%>%生成列联表(table) %>%对列联表执行卡方检验”
5.5 Code3-1 生成条形图(P.108)
实际上,用下面这个命令就可以绘制出简单的条形图(即柱状图)。
plot(table1)