R如何对数据进行分组

1. factor()函数

> mtcars$cyl <- factor(mtcars$cyl)
> mtcars$cyl[1] 6 6 4 6 8 6 8 4 4 6 6 8 8 8 8 8 8 4 4 4 4 8 8 8 8 4 4 4 8 6 8 4
Levels: 4 6 8

2. cut()函数

> cut(mtcars$mpg,c(seq(10,50,10)))[1] (20,30] (20,30] (20,30] (20,30] (10,20] (10,20] (10,20] (20,30] (20,30] (10,20] (10,20]
[12] (10,20] (10,20] (10,20] (10,20] (10,20] (10,20] (30,40] (30,40] (30,40] (20,30] (10,20]
[23] (10,20] (10,20] (10,20] (20,30] (20,30] (30,40] (10,20] (10,20] (10,20] (20,30]
Levels: (10,20] (20,30] (30,40] (40,50]

R进行频数统计

1. table()函数

#一维数据的频数
> table(mtcars$cyl)4  6  8
11  7 14
> table(cut(mtcars$mpg,c(seq(10,50,10))))(10,20] (20,30] (30,40] (40,50] 18      10       4       0 #二维数据的频数:一个空白对照,一个处理组
> table(mtcars$cyl,mtcars$gear)3  4  54  1  8  26  2  4  18 12  0  2#R语言中的with函数,把所有操作都限制在数据框上
> with(mtcars,table(cyl,gear))               #强调用mtcars数据集中的数据gear
cyl  3  4  54  1  8  26  2  4  18 12  0  2
#三维列联表
> with(mtcars,table(cyl,gear,carb))
, , carb = 1gear
cyl 3 4 54 1 4 06 2 0 08 0 0 0, , carb = 2gear
cyl 3 4 54 0 4 26 0 0 08 4 0 0, , carb = 3gear
cyl 3 4 54 0 0 06 0 0 08 3 0 0, , carb = 4gear
cyl 3 4 54 0 0 06 0 4 08 5 0 1, , carb = 6gear
cyl 3 4 54 0 0 06 0 0 18 0 0 0, , carb = 8gear
cyl 3 4 54 0 0 06 0 0 08 0 0 1

2. xtabs()函数

xtabs(formula = ~., data)
formula:公式
data:数据框

#一维数据频数
> xtabs(~cyl,mtcars)
cyl4  6  8
11  7 14 #二维数据频数
> xtabs(~cyl+gear,mtcars)gear
cyl  3  4  54  1  8  26  2  4  18 12  0  2
#三维列联表
> xtabs(~cyl+gear+carb,mtcars)#平铺式列联表
> y <- xtabs(~cyl+gear+carb,mtcars)
> ftable(y)carb 1 2 3 4 6 8
cyl gear
4   3         1 0 0 0 0 04         4 4 0 0 0 05         0 2 0 0 0 0
6   3         2 0 0 0 0 04         0 0 0 4 0 05         0 0 0 0 1 0
8   3         0 4 3 5 0 04         0 0 0 0 0 05         0 0 0 1 0 1

R进行频率统计

1. prop.table()函数

> prop.table(table(mtcars$cyl))4       6       8
0.34375 0.21875 0.43750
> prop.table(table(cut(mtcars$mpg,c(seq(10,50,10)))))(10,20] (20,30] (30,40] (40,50] 0.5625  0.3125  0.1250  0.0000

对于二维连表,使用margin.table()和prop.table()按行或者按列计算边界频数与比例

  • margin.table()函数

margin.table(x, margin = NULL)
x:一个数组
margin:一个向量,给出计算其和的边界。例如,对于矩阵1表示行,2表示列,c(1,2)表示行和列。

> x <- xtabs(~cyl+gear,mtcars)
#整个数组的频数
> margin.table(x)
[1] 32
#行的频数
> margin.table(x,1)
cyl4  6  8
11  7 14
#列的频数
> margin.table(x,2)
gear3  4  5
15 12  5
#行和列的频数
> margin.table(x,c(1,2))gear
cyl  3  4  54  1  8  26  2  4  18 12  0  2
  • prop.table()函数
#按行进行统计
> prop.table(x,1)gear
cyl          3          4          54 0.09090909 0.72727273 0.181818186 0.28571429 0.57142857 0.142857148 0.85714286 0.00000000 0.14285714
#按列进行统计
> prop.table(x,2)gear
cyl          3          4          54 0.06666667 0.66666667 0.400000006 0.13333333 0.33333333 0.200000008 0.80000000 0.00000000 0.40000000
> prop.table(x)gear
cyl       3       4       54 0.03125 0.25000 0.062506 0.06250 0.12500 0.031258 0.37500 0.00000 0.06250
  • addmagrins()函数
> addmargins(x)gear
cyl    3  4  5 Sum4    1  8  2  116    2  4  1   78   12  0  2  14Sum 15 12  5  32
> addmargins(x,1)gear
cyl    3  4  54    1  8  26    2  4  18   12  0  2Sum 15 12  5
> addmargins(x,2)gear
cyl  3  4  5 Sum4  1  8  2  116  2  4  1   78 12  0  2  14
> addmargins(x,c(1,2))gear
cyl    3  4  5 Sum4    1  8  2  116    2  4  1   78   12  0  2  14Sum 15 12  5  32

R语言-频数统计函数相关推荐

  1. R语言频数统计函数和独立性检验函数

    目录 1. 频数统计函数 1.1 数据分组 1.2 频数统计 1.2.1 一维 1.2.2 二维 2. 独立性检验函数 1. 频数统计函数 1.1 数据分组 我们要进行频数统计,首先要利用因子对数据进 ...

  2. R语言描述性统计函数总结

    描述性统计 1, 使用summary()函数来获取描述性统计量 summary()函数提供了最大值,最小值,四分位数和数值型变量的均值以及因子向量和逻辑向量的频数统计 例子 myvars <- ...

  3. R语言入门第五集 实验四:数据分析

    R语言入门第五集 实验四:数据分析 一.资源 [R语言]R语言函数练习--东北大学大数据班R实训第四次作业 R语言:常用apply函数(apply,tapply,sapply,lapply)用法介绍 ...

  4. r语言参数fig=c(),干货︱R语言绘图—基础图形参数整理

    继上一期的文章[干货丨零基础学习 R 语言?]小编在介绍了R语言基础入门(包括R的安装和载入.数据导入和导出方法等),在这一期小编继续为你挖掘R语言的巧妙用处,跟大家探讨如何创建和保存图形,如何修改图 ...

  5. R语言之Rstudio 导入包

    查找 以readxl为例子 Rstudio代码操作 install.packets("readxl") # " "引号内输入包名 library() #查阅当前 ...

  6. R语言编写自定义分组统计函数(customize statistics function)可视化分组箱图并在X轴标签下方添加分组对应的统计值(样本数N、中位数median、四分位数的间距iqr)

    R语言编写自定义分组统计函数(customize statistics function)可视化分组箱图并在X轴标签下方添加分组对应的统计值(样本数N.中位数median.四分位数的间距iqr) 目录

  7. R语言 自定义区间频数频率表

    R语言在统计频数时可用的函数有freq table ftable等 freq主要是raster包中统计栅格层所有值的频数表. 例: r <- raster(nrow=18, ncol=36) r ...

  8. 多言统计及R语言建模按组距为300编制频数表,计算频数,频率和累积频率表,并绘制直方图

    按组距为300编制频数表,计算频数,频率和累积频率表,并绘制直方图 某厂对50个计件工人某月份工资进行登记,获得以下原始资料(单位:元) 试按组距为300编制频数表,计算频数,频率和累积频率表,并绘制 ...

  9. R语言简单的频数统计图

    用R语言绘制简单的频数统计分布图,本次讲的简单分布图有:条形图.饼形图.直方图 本文举例进行说明相关统计分布图: (1)绘制条形图 绘制条形图的代码如下: par(mfrow=c(1,3),cex=0 ...

最新文章

  1. 汽车成黑客攻击新目标
  2. 保护DNS对数字网络安全越来越重要
  3. java子类有参构造函数吗_为什么我需要在这个Java通用子类中有一个构造函数?...
  4. sublime配置python运行环境
  5. Java编译环境的构建
  6. php底层实现也是c语言,深入php内核,从底层c语言剖析php实现原理
  7. 创建java取消module_IntelliJ IDEA 2020使用之模块新建删除导入!
  8. clion 插件_IDEA必备插件系列-Rainbow
  9. 计算机基础应用网络统考题库,2016年9月网络教育《计算机应用基础》统考模拟试题及答案 (1)...
  10. Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
  11. iOS资源大全中文版
  12. 常见的ASCII码值
  13. CSS3与CSS的区别有哪些?
  14. android 镜像投屏开发,Android 投屏实现纪要
  15. android 2k屏分辨率是多少,手机2k屏幕是什么意思 2k屏幕几大问题
  16. 【转载】《Real-Time Rendering 3rd》 提炼总结】(二) 第二章 · 图形渲染管线 The Graphics Rendering Pipeline
  17. HDU - 6769
  18. datawhale 8月学习——NLP之Transformers:编写BERT模型
  19. 【图文详解】HBase 的数据模型与架构原理详解
  20. obs多推流地址_最热门直播工具OBS的下载和设置教程,值得一看

热门文章

  1. 浅谈Feature Scaling
  2. Vert.x开发指南
  3. 创新之力迸发无限想象,联想创新开放日触见未来科技
  4. PySide2 使用
  5. 项目实训——2022
  6. 05- 线性回归算法 (LinearRegression) (算法)
  7. RDkit二:利用RDkit筛选进行化学小分子2D药效团筛选
  8. java创建mongdb数据库_【转发】Java使用MongoDB数据库进行增删改查
  9. 【微服务】配置了端口号却还是在 8080端口启动的原因
  10. LINUX软中断-softirq