R语言的xtabs函数
今天在做一个列联表独立性检验的时候,总是无法处理好要求的数据类型,偶然的机会,看到了xtabs()函数,感觉很适合用来做列联表,适合将一列数据转换成列联表。
shifou <- c("yes","yes","no","no")
xinbie <- c("nan","nv","nan","nv")
freq <- c(34,38,28,50)
(exer6_2 <- data.frame(shifou,xinbie,freq))
(count22 <- xtabs(freq~.,data = exer6_2))#这个点表示shifou + xinbie,这个和lm()用法差不多
assocstats(count22)
运行过程与结果如下:
> shifou <- c("yes","yes","no","no")#是否逃课
> xinbie <- c("nan","nv","nan","nv")#性别
> freq <- c(34,38,28,50)
> (exer6_2 <- data.frame(shifou,xinbie,freq))#“nan”表示男,“nv”表示女,yes表示逃课,no表示不逃课
shifou xinbie freq
1 yes nan 34
2 yes nv 38
3 no nan 28
4 no nv 50
> (count22 <- xtabs(freq~.,data = exer6_2))#这个数据表示性别与性别是否有关
xinbie
shifou nan nv
no 28 50
yes 34 38
> assocstats(count22)
X^2 df P(> X^2)
Likelihood Ratio 1.9830 1 0.15908
Pearson 1.9802 1 0.15937
#这个p值为0.15937大于0.05,表示与性别没有关系
Phi-Coefficient : 0.115
Contingency Coeff.: 0.114
Cramer's V : 0.115
接下来,创建一个更加难的数据集
(价格 <- rep(c("10万以下","10~20万","20~30万","30万以上"),each = 3))
(地区 <- rep(c("东部","中部","西部"),each = 1,times = 4))
(数量 <- c(20,40,40,50,60,50,30,20,20,40,20,10))
(销售情况 <- data.frame(价格,地区,数量))
(count2 <- xtabs(数量 ~ (价格 + 地区),data = 销售情况))
运算过程:
> (价格 <- rep(c("10万以下","10~20万","20~30万","30万以上"),each = 3))
[1] "10万以下" "10万以下" "10万以下" "10~20万" "10~20万" "10~20万" "20~30万"
[8] "20~30万" "20~30万" "30万以上" "30万以上" "30万以上"
> (地区 <- rep(c("东部","中部","西部"),each = 1,times = 4))
[1] "东部" "中部" "西部" "东部" "中部" "西部" "东部" "中部" "西部" "东部" "中部"
[12] "西部"
> (数量 <- c(20,40,40,50,60,50,30,20,20,40,20,10))
[1] 20 40 40 50 60 50 30 20 20 40 20 10
> (销售情况 <- data.frame(价格,地区,数量))
价格 地区 数量
1 10万以下 东部 20
2 10万以下 中部 40
3 10万以下 西部 40
4 10~20万 东部 50
5 10~20万 中部 60
6 10~20万 西部 50
7 20~30万 东部 30
8 20~30万 中部 20
9 20~30万 西部 20
10 30万以上 东部 40
11 30万以上 中部 20
12 30万以上 西部 10
> (count2 <- xtabs(数量 ~ (价格 + 地区),data = 销售情况))
地区
价格 东部 西部 中部
10~20万 50 50 60
10万以下 20 40 40
20~30万 30 20 20
30万以上 40 10 20
可以看出这个count2也构成了这个列联表的形式,接下来,使用 chisq.test()函数便可进行卡方检验
> chisq.test(count2) Pearson's Chi-squared test data: count2
X-squared = 29.991, df = 6, p-value = 3.946e-05
R语言的xtabs函数的更多相关文章
- R语言 三个函数sort();rank();order()
R语言入门,弄懂了几个简单的函数,分享一下:R语言排序有几个基本函数: sort():rank():order()sort()是对向量进行从小到大的排序rank()返回的是对向量中每个数值对应的秩or ...
- R语言——基本绘图函数
通过一个综合的例子测试绘图函数 学习的内容是tigerfish老师的教程. 第一节:基本知识 用seq函数产生100位学生的学号. > num = seq(,) > num [] [] [ ...
- R语言do.call 函数用法详解
虽然R语言有类型很丰富的数据结构,但是很多时候数据结构比较复杂,那么基本就会用到list这种结构的数据类型.但是list对象很难以文本的形式导出,因此需要一个函数能快速将复杂的list结构扁平化成da ...
- [R]关于R语言的绘图函数
1. 首先就是plot(x,y,...) 参数: x: 所绘图形横坐标构成的对象 y: 所绘图形纵坐标构成的对象 type: 指定所绘图形类型 pch: 指定绘制点时使用的符号 cex: 指定符号的大 ...
- R语言矩阵matrix函数
矩阵是元素布置成二维矩形布局的R对象. 它们包含相同原子类型的元素.尽管我们可以创建只包含字符或只逻辑值的矩阵,但是它们没有多大用处.我们使用的是在数学计算中含有数字元素矩阵. 使用 matrix() ...
- R语言列表list函数
列表是R语言中的对象,它包含不同类型的元素,比如 - 数字,字符串,向量和另一个列表等.一个列表还可以包含一个矩阵或一个函数作为它的元素.使用list()函数创建列表. 创建一个列表 下面是一个例子来 ...
- R语言(自定义函数、循环语句、管道函数)
学习R语言半年多了,以前比较注重统计方法上的学习,但是最近感觉一些基础知识也很重要.去年的参考资料是<R语言实战>,今年主要是看视频.推荐网易云课堂里的教程,很多资料都是很良心的~ 目前学 ...
- R语言的scale函数
1.数据的中心化 所谓数据的中心化是指数据集中的各项数据减去数据集的均值. 例如有数据集1, 2, 3, 6, 3,其均值为3 那么中心化之后的数据集为1-3,2-3,3-3,6-3,3-3,即:-2 ...
- R语言-编写自定义函数 ZZ
一.函数构造器 每一个R函数都包括三个部分:函数名,程序主体以及参数集合,在编写自定义R函数时,需要将三个部分各自储存在一个R对象中.这里需要使用function函数,形如: my_function& ...
随机推荐
- BeanFactory和ApplicationContext的区别(Bean工厂和应用上下文)
https://blog.csdn.net/qq_20757489/article/details/88543252 https://blog.csdn.net/pythias_/article/de ...
- spring-boot 如何加载rsources下面的自定义配置文件
spring-boot 如何加载resources下面的自定义配置文件 https://segmentfault.com/q/1010000006828771?_ea=1144561
- KVM---利用 libvirt+qemu-kvm 创建虚拟机
KVM 虚拟化已经是一个工业级的虚拟化解决方案了,以前都是直接下载 VMware,然后安装其他操作系统的,今天我们来体验一下自己动手创建一台虚拟机,这样你就会知道在KVM下创建一台虚拟机,是多么简单的 ...
- 专业程序设计part1
7 专业程序设计 (有多少人在大学里学到了自己真正喜欢的专业??并在此专业上获得了升华??)i== 软件图标下载网址:easyicon 01thu 4邻域 8邻域 D邻域 是啥 像素间的连通性,是转为 ...
- 有几个水洼(DFS)
#include <iostream> #include<cstdio> using namespace std; #define maxn 105 char field[ma ...
- redhat6.5 升级内核
1.导入key rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 2.安装elrepo的yum源 rpm -Uvh https:// ...
- python,pandas, DataFrame数据获取方式
一.创建DataFrame df=pd.DataFrame(np.arange(,).reshape(,)) my_col=dict(zip(range(),['A','B','C'])) df.re ...
- python,PyAutoGUI,设置鼠标键盘自动操作
三个文件需在同一个文件夹下面,文件夹的位置无要求. 1.第一个文件,trial.py.python代码调用PyAutoGUI操作鼠标键盘,可以通过修改start_time和end_time来确定程序自 ...
- linux系统用户管理(一)
Linux系统用户管理1.用户管理*****2.Linux用户命令****3.用户创建的原理***4.密码管理***5.组命令管理**6.身份切换*****7.sudo提升权限***** 我们现在所使 ...
- mean|mode|median|sample的表达方式
Measures of Center measures of central tendency:the center or most typical value:average Mean:its ar ...