5.1 加载数据
加载名为
sample.csv
的数据并以dat
为名称保存,其命令如下。
> dat <- read.csv ("sample.csv")
还可以用下述方法从对话框中选择文件。
> dat <- read.csv (file.choose())
5.2 table 函数
这是用来生成列联表的函数。
> table (dat)
RES
SEX N Y
F 8 6
M 5 7
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
RES
SEX N Y
F 8 6
M 5 7
5.4 chisq.test 函数
这是进行独立性检验(卡方检验)的函数。举个例子,现在要分析男女对 A 候选人的支持率是否相等。
> chisq.test (dat2)
Pearson's Chi-squared test with Yates' continuity correction
data: dat2
X-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)