R内置函数实现数组变量转为因子变量有:cut、split、quantile、bincode,本文主要介绍ggplot提供的几个分组函数。

*cut_interval()*按照相同范围分为n组;, cut_number() 按照相同数量(近似)观测值分为n组; cut_width() 按照参数 width指定的宽度进行分组。

语法如下:

# cut_interval(x, n = NULL, length = NULL, ...)
#
# cut_number(x, n = NULL, ...)
#
# cut_width(
#   x,
#   width,
#   center = NULL,
#   boundary = NULL,
#   closed = c("right", "left"),
#   ...
# )

cut_interval举例

按照相同范围分为6组,使用table进行统计分组数据进行验证:

table(cut_interval(1:10, 6))# [1,2.5]  (2.5,4]  (4,5.5]  (5.5,7]  (7,8.5] (8.5,10] #       2        2        1        2        1        2 table(cut_interval(1:10, 5))# [1,2.8] (2.8,4.6] (4.6,6.4] (6.4,8.2]  (8.2,10] #       2         2         2         2         2

cut_number举例

每组包括相同数量元素进行分组:

table(cut_number(runif(100), 10))
# [0.00693,0.17]   (0.17,0.305]   (0.305,0.38]   (0.38,0.477]   (0.477,0.58]   (0.58,0.688]  (0.688,0.771]
#             10             10             10             10             10             10             10
#   (0.771,0.83]   (0.83,0.922]  (0.922,0.993]
#             10             10             10 

cut_width 举例

每组距离是0.1,对100个均匀分布数据分组:

table(cut_width(runif(100), 0.1))# [-0.05,0.05]  (0.05,0.15]  (0.15,0.25]  (0.25,0.35]  (0.35,0.45]  (0.45,0.55]  (0.55,0.65]  (0.65,0.75]
#            3           14           10            6           11           11           13            8
#  (0.75,0.85]  (0.85,0.95]  (0.95,1.05]
#            9            7            8
table(cut_width(runif(100), 0.1, boundary = 0))# [0,0.1] (0.1,0.2] (0.2,0.3] (0.3,0.4] (0.4,0.5] (0.5,0.6] (0.6,0.7] (0.7,0.8] (0.8,0.9]   (0.9,1] #      10         6        13        11         8        11         9        11        11        10 table(cut_width(runif(100), 0.1, center = 0))
# [-0.05,0.05]  (0.05,0.15]  (0.15,0.25]  (0.25,0.35]  (0.35,0.45]  (0.45,0.55]  (0.55,0.65]  (0.65,0.75]
#            5           16           12           11            8           11            7            8
#  (0.75,0.85]  (0.85,0.95]  (0.95,1.05]
#           13            5            4 table(cut_width(runif(100), 0.1, labels = FALSE))
# 1  2  3  4  5  6  7  8  9 10 11
# 9  8 13 12  7 10  9 11  8  9  4

boundary 设置分组初始边界,如果不指定则为width的一半。center 指定分组中心,center=0让中心为整数。

labels
labels 指定分组结果的级别. 默认使用 “(a,b]” 作为分组标识. 如果设置 labels = FALSE, 简单使用整数代码代替因子变量.

应用举例

统计diamonds数据中钻石重量的分布情况:

library("dplyr")
diamonds %>% count(cut_width(carat, 0.5)) # A tibble: 11 x 2
#    `cut_width(carat, 0.5)`     n
#    <fct>                   <int>
#  1 [-0.25,0.25]              785
#  2 (0.25,0.75]             29498
#  3 (0.75,1.25]             15977
#  4 (1.25,1.75]              5313
#  5 (1.75,2.25]              2002
#  6 (2.25,2.75]               322
#  7 (2.75,3.25]                32
#  8 (3.25,3.75]                 5
#  9 (3.75,4.25]                 4
# 10 (4.25,4.75]                 1
# 11 (4.75,5.25]                 1ggplot(data = diamonds, mapping = aes(x = carat)) +
geom_histogram(binwidth = 0.5)


geom_histogram也可以指定分组宽度。

连续变量离散化类别变量相关推荐

  1. 【数据竞赛】Kaggle实战之单类别变量特征工程总结!

    作者:尘沙杰少.樱落.新峰.DOTA.谢嘉嘉 特征工程--类别变量完结篇! 前 言 这是一个系列篇,后续我们会按照我们第一章中的框架进行更新,因为大家平时都较忙,不会定期更新,如有兴趣欢迎长期关注我们 ...

  2. Python下数值型与字符型类别变量独热编码(One-hot Encoding)实现

    1 OneHotEncoder 2 pd.get_dummies   在数据处理与分析领域,数值型与字符型类别变量的编码是不可或缺的预处理操作.本文基于Python下OneHotEncoder与pd. ...

  3. 机器学习常见问题 - 类别变量处理

    类别变量类型: Nominal: 红,黄,蓝 Ordinal,高,中,低 连续变量:1.1,2.1,1.3,1.4 类别变量问题的一些挑战 类别数量很多,但是每个类别的样本不多,例如"城市& ...

  4. Stata: 因变量是类别变量时采用什么方法估计?

    Stata连享会   计量专题 || 精品课程 || 简书推文 || 公众号合集   连享会计量方法专题--,https://gitee.com/arlionn/Course   问题背景 多数情况下 ...

  5. 机器学习特征工程之连续变量离散化:聚类法进行分箱

    机器学习特征工程之连续变量离散化:聚类法进行分箱 离散化,就是把无限空间中有限的个体映射到有限的空间中: 根据用户的听音乐的数据来预测哪些歌曲更受欢迎. 假设大部分人听歌都很平均,会不停的听新的歌曲, ...

  6. 机器学习特征工程之连续变量离散化:等频分箱

    机器学习特征工程之连续变量离散化:等频分箱 离散化,就是把无限空间中有限的个体映射到有限的空间中: 根据用户的听音乐的数据来预测哪些歌曲更受欢迎. 假设大部分人听歌都很平均,会不停的听新的歌曲,但是有 ...

  7. 机器学习特征工程之连续变量离散化:连续变量二值化(Binarizer)

    机器学习特征工程之连续变量离散化:连续变量二值化(Binarizer) 离散化,就是把无限空间中有限的个体映射到有限的空间中: 根据用户的听音乐的数据来预测哪些歌曲更受欢迎. 假设大部分人听歌都很平均 ...

  8. 机器学习特征工程之连续变量离散化:等宽分箱

    机器学习特征工程之连续变量离散化:等宽分箱 离散化,就是把无限空间中有限的个体映射到有限的空间中: 根据用户的听音乐的数据来预测哪些歌曲更受欢迎. 假设大部分人听歌都很平均,会不停的听新的歌曲,但是有 ...

  9. 【机器学习基础】机器学习中类别变量的编码方法总结

    机器学习 Author:louwill Machine Learning Lab 在做结构化数据训练时,类别特征是一个非常常见的变量类型.机器学习中有多种类别变量编码方式,各种编码方法都有各自的适用场 ...

最新文章

  1. reactjs npm start运行报错:Error: ENOSPC: System limit for number of file watchers reached
  2. opencv中的imwrite如何保存_如何把公众号的文章用文档保存到电脑中?
  3. 征稿 | 2019年全国知识图谱与语义计算大会(CCKS2019)投稿时间延长
  4. # SDN第五次上机作业
  5. Bailian4013 中位数【中位数】
  6. [android]Tablayout使用setupWithViewPager
  7. Ajax Session Timeout处理
  8. ElasticSearch SQL 日期函数
  9. java使用ffmpeg转码并上传视频
  10. jdy ble sdk android,JDY-18蓝牙模块 连接blinker超时
  11. java mongodb json_java向mongoDB中插入Json
  12. outlook 签名_快速提示:轻松在Outlook 2007中的签名之间切换
  13. excel 合格率计算方法
  14. Ubuntu 16.04 LTS安装搜狗输入法解析
  15. RFID-MFRC522射频识别模块,S50卡M1
  16. Pytorch 分类模板
  17. PVE vi 编辑器方向键出现ABCD乱码
  18. 随手一写就是一个侧滑关闭activity
  19. Linguistically Regularized LSTM for Sentiment Classification 论文原文、代码实现以及翻译
  20. NLP-Beginner 任务二:基于深度学习的文本分类+pytorch(超详细!!)

热门文章

  1. 解决办法:360压缩解压出现空白文件创建失败,但压缩包文件无损坏显示有十几个文件
  2. MYSEE:Sp数据结构分析初稿
  3. B2C电子商务网站运营推广的优化技巧
  4. killall -9的危害
  5. Keil运行密钥(pojie)软件运行时,exe程序无法运行/被删除/防火墙警告的解决方法
  6. 用Github建立个人主页
  7. mysql怎么判断是否断号_怎么判断孩子是否患上多动症?
  8. iOS-AVPlayer使用
  9. 什么是SATA接口硬盘?无法正常使用时如何恢复数据
  10. Oracle数据库解决NULL值不走B树索引