R数据分析:数据清洗的思路和核心函数介绍

本文详细介绍了数据处理中的5个关键步骤:数据导入、列名整理、去重、变量生成与转换、行操作。通过R语言中的dplyr包和janitor等工具,展示了如何清洗复杂数据、创建新变量并进行逻辑操作,提升统计分析效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

好多同学把统计和数据清洗搞混,直接把原始数据发给我,做个统计吧,这个时候其实很大的工作量是在数据清洗和处理上,如果数据很杂乱,清洗起来是很费工夫的,反而清洗好的数据做统计分析常常就是一行代码的事情。

Data scientists only spend 20% of their time creating insights, the rest wrangling data.

想想今天就给大家写一篇数据处理的常用函数介绍吧。全是自己的一丢丢经验,肯定不会是最优的,仅仅是给个参考,因为在R中同一个目的的实现方法太多了,找到适合自己的才是最好的。我争取尽量清晰地一步一步给大家展示一下整个清洗数据的流程。

在R语言中我们会用一系列的方法把我们的数据清洗过程连起来,整个的思路就是从原始数据开始,一步一步形成我们的最终可以用来做统计的数据。

整体上我们数据处理的步骤可以包含下面5个部分,也是有顺序的5步:

  • Importing of data(数据导入)
  • Column names cleaned or changed(列名的清洗转换)
  • De-duplication(去重)
  • Column creation and transformation (e.g. re-coding or standardising values)(生成新变量)
  • Rows filtered or added(数据选择)

本文就带着大家一步一步走一遍,中间会详细说明一些核心函数的用法,希望对大家有点帮助。当然了,以下内容默认您已经理解dplyr包的基础,比如Pipes%>%符号。

数据导入

数据导入大家应该都没有问题,就算有问题网上搜搜一般都可以解决,导入数据的方法有很多种,这儿会推荐大家直接用右上角的菜单import data,或者使用rio包的import函数。我现在有一个已经导入的原始数据raw如下图:

数据导入进来之后我们首先应该整体上看看变量类型,变量名称都是如何的,以此决定我们是不是将变量名初步改改,或者变量类型也得改改,就是首先得有个整体把握,此时推荐大家运行一下skim函数,这个是帮助我们了解数据整体形式的十分方便的函数,请大家把summary忘掉,直接运行skim:

skimr::skim(raw)

函数的输出包括整体的数据有多少行多少列,列的不同类型(数值,字符,时间)有几种,然后不同的列的类型还会输出我们关心的指标,比如字符型的列都会有每一列的缺失比例,极值,非重复值,空白等:

比如对于每一个数值型的列都会有缺失数量,均值标准差百分位数,直方图等等我们关心的东西:

反正就是大家用skim函数就可以从整体上把握住我们的数据的样子了。

另外还会推荐大家用names函数看看数据的列名,有了对数据集的整体把握和全部的变量名,我们可以紧接着进行下一步:变量名的转换。

列名的清洗转换

转化的目的就是使得之后的操作调用变量可以更加的清晰和方便,我可以瞅瞅我的原始数据的列名:

names(raw)

在查看列名时我们需要关注一下列名是不是符合以下要求:

  • 在可读性高的情况下尽可能短
  • 没空格
  • 没有特殊字符(&, #, <, >, …)
  • 样式统一(e.g. all date
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

公众号Codewar原创作者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值