专栏首页庄闪闪的R语言手册数据处理|数据按从小到大分成n类

数据处理|数据按从小到大分成n类

最近做项目遇到了一个实际数据清洗的问题,如何将连续数据按从大到小分成n类?刚开始我是打算用tidyverse包的,但是找不到合适的函数。只能通过较为笨拙的方法进行了。

之后通过stackoverflow网站[1]进行查询才发现原来有这么好用的窗口函数

较为笨拙的方法

使用Rbase包中的数据框操作进行,首先随机产生一个数据框作为模拟数据。

temp <- data.frame(name=letters[1:12], value=rnorm(12), q=rep(NA, 12))
head(temp)
#    name       value quartile
# 1     a  2.55118169       NA
# 2     b  0.79755259       NA
# 3     c  0.16918905       NA
# 4     d  1.73359245       NA
# 5     e  0.41027113       NA
# 6     f  0.73012966       NA
temp.sorted <- temp[order(temp$value), ]
temp.sorted$q <- rep(1:4, each=12/4)
temp <- temp.sorted[order(as.numeric(rownames(temp.sorted))), ]
head(temp)
#    name       value        q
# 1     a  2.55118169        4
# 2     b  0.79755259        3
# 3     c  0.16918905        2
# 4     d  1.73359245        4
# 5     e  0.41027113        2
# 6     f  0.73012966        3

使用dplyr包中的ntile()

首先构建一个数据框,包含a,b变量。以该数据框进行演示:

foo <- data.frame(a = 1:100,
                  b = runif(100, 50, 200),
                  stringsAsFactors = FALSE)

载入tidyverse包[2],内部包含了dplyr包[3]。然后使用管道函数,利用函数ntile()构建新的列,列名为q。或者不用通道函数,直接加载dplyr包也可以。

library(tidyverse)
foo %>%
    mutate(q = ntile(b, 10))

#  a         b        q
#1 1  93.94754        2
#2 2 172.51323        8
#3 3  99.79261        3
#4 4  81.55288        2
#5 5 116.59942        5
#6 6 128.75947        6

参考资料

[1]

How to quickly form groups : https://stackoverflow.com/questions/4126326/how-to-quickly-form-groups-quartiles-deciles-etc-by-ordering-columns-in-a?noredirect=1

[2]

tidyverse包: https://www.tidyverse.org/

[3]

dplyr包: https://dplyr.tidyverse.org/

本文分享自微信公众号 - 庄闪闪的R语言手册(Zss_R4ds),作者:庄闪闪

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-11-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 批处理衰落,流处理兴起,大数据处理平台从Lambda到Kappa的演进

    流处理引擎经历了从Storm到Spark Streaming再到Flink的三代的技术迭代,大数据处理也随之经历了从Lambda架构到Kappa架构的演进。本节...

    PP鲁
  • 从重采样到数据合成:如何处理机器学习中的不平衡分类问题?

    选自Analytics Vidhya 作者:Upasana Mukherjee 机器之心编译 参与:马亚雄、微胖、黄小天、吴攀 如果你研究过一点机器学习和数据科...

    机器之心
  • 大赞!分享一个数据科学利器 PyCaret,几行代码搞定从数据处理到模型部署

    学习数据科学很久了,从数据探索、数据预处理、数据模型搭建和部署这些过程一直有些重复性的工作比较浪费时间,尤其当你有个新的想法想要快速尝试下效果的时候,效率很低。

    Python数据科学
  • 从Hadoop到Spark、Flink,大数据处理框架十年激荡发展史

    当前这个数据时代,各领域各业务场景时时刻刻都有大量的数据产生,如何理解大数据,对这些数据进行有效的处理成为很多企业和研究机构所面临的问题。本文将从大数据的基础特...

    PP鲁
  • 从并发编程到分布式系统——如何处理海量数据(上)

    在这里想写写自己在学习并发处理的学习思路,也会聊聊自己遇到的那些坑,以此为记,希望鞭策自己不断学习、永不放弃!

    Java团长
  • 【干货】Python大数据处理库PySpark实战——使用PySpark处理文本多分类问题

    【导读】近日,多伦多数据科学家Susan Li发表一篇博文,讲解利用PySpark处理文本多分类问题的详情。我们知道,Apache Spark在处理实时数据方面...

    WZEARW
  • 从小白到年薪10万+,优秀的数据分析能力如何速成?

    用户1621951
  • 从小白到年薪10万+,优秀的数据分析能力如何速成?

    广泛被应用的数据分析 谷歌的数据分析可以预测一个地区即将爆发的流感,从而进行针对性的预防;淘宝可以根据你浏览和消费的数据进行分析,为你精准推荐商品;口碑极好的网...

    机器学习AI算法工程
  • 从小白到年薪10万+,优秀的数据分析能力如何速成?

    广泛被应用的数据分析 谷歌的数据分析可以预测一个地区即将爆发的流感,从而进行针对性的预防;淘宝可以根据你浏览和消费的数据进行分析,为你精准推荐商品;口碑极好的网...

    Crossin先生
  • 从广告监测到知识图谱,明略千亿大数据处理能力是如何炼成的?

    网购、叫车、订外卖、看电影...... 移动互联网各种场景的背后都离不开大数据技术。经过十几年的发展,大数据技术已经成为互联网企业的基础设施。

    深度学习与Python
  • 思影科技啮齿类动物(大小鼠)神经影像数据处理业务

    思影啮齿类动物(大鼠/小鼠)数据处理现主要涵盖sMRI(T1加权像)、dMRI(DWI,弥散加权成像)和fMRI(功能磁共振)三种模态。

    用户1279583
  • 从Storm到Flink:大数据处理的开源系统及编程模型(文末福利)

    基于流计算的基本模型,当前已有各式各样的分布式流处理系统被开发出来。本节将对当前开源分布式流处理系统中三个最典型的代表性的系统:Apache Storm,Spa...

    AI科技大本营
  • Python从零开始第三章数据处理与分析:三个简单但强大的函数

    本文博客:柳叶刀与小鼠标 - 简书 https://www.jianshu.com/u/619b87e54936 =====================...

    用户1359560
  • Python数据处理从零开始----第四章(可视化)(11)多分类ROC曲线目录

    ===============================================

    用户1359560
  • Python数据处理从零开始----第四章(可视化)(10)二分类ROC曲线目录

    机器学习中对于分类模型常用混淆矩阵来进行效果评价,混淆矩阵中存在多个评价指标,这些评价指标可以从不同角度来评价分类结果的优劣,以下内容通过简单的理论概述和案例展...

    用户1359560
  • 爬到的数据不处理怎么行?大话TextRank自动关键词与摘要生成

    PageRank是谷歌发明的,最开始用来计算网页的重要性。整个www可以看作一张有向图图,节点是网页。如果网页A存在到网页B的链接,那么有一条从网页A指向网页B...

    羽翰尘
  • 入门 | 从文本处理到自动驾驶:机器学习最常用的50大免费数据集

    Kaggle:一个数据科学竞赛网站,其中包含大量外部贡献的有趣数据集。你可以在它长长的列表中(https://www.kaggle.com/datasets)找...

    机器之心
  • PQ算法调优 | 充分利用分组功能,提升数据处理效率 - 1:从分类加索引问题谈起

    很多朋友在用Power Query处理数据时遇到效率问题,其中最常见的就是通过Table.SelectRows函数进行筛选数据并处理的情况。

    大海Power
  • 学界 | 中科大潘建伟团队在光量子处理器上成功实现拓扑数据分析

    机器之心

扫码关注云+社区

领取腾讯云代金券