R语言 数据清理
在这篇文章中,我们将简要介绍一下数据清洗的应用和它在R编程语言中的实现技术。
R语言中 的数据清理
数据清洗是将原始数据转化为易于分析的一致数据的过程。它的目的是根据数据以及它们的可靠性来过滤统计报表的内容。此外,它还会影响基于数据的统计报表,并提高你的数据质量和整体生产力。
数据清理的目的
以下是数据清理的各种目的。
- 消除错误
- 消除冗余
- 提高数据的可靠性
- 交付准确度
- 确保连贯性
- 确保完整性
- 使你的方法标准化
一个典型的数据分析链的概述
本节介绍了一个典型的数据分析的概述。图中的每个矩形代表处于某种状态的数据,而每个箭头代表从一种状态到另一种状态所需的活动。第一个状态( 原始数据 )是数据进来时的状态。原始数据可能缺少标题,包含错误的数据类型,错误的类别标签,未知或意外的字符编码,等等。一旦进行了这种预处理,数据就可以被视为 技术上正确的数据。 也就是说,在这种状态下,数据可以被读入R的data.frame中,并具有正确的名称、类型和标签,而不会有进一步的麻烦。然而,这并不意味着这些值是没有错误的或完整的。 一致的数据 是数据准备好进行统计推理的阶段。它是大多数统计理论用来作为起点的数据。
如何在R中清理数据
在这里,这涉及到各种步骤,因为从最初的原始数据必须走向一致和高效的数据,这是我准备按照要求实现,并产生高度精确和准确的统计结果。这些步骤因数据而异,因为在这种情况下,用户应该了解他/她用于结果的日期。由于混乱的数据有许多特点和常见的症状,这完全取决于用户用于分析的数据。
清洁数据的特征包括数据是
- 没有重复的行/值
- 无错误(无拼写错误)
- 相关(无特殊字符)
- 适合于分析的数据类型
- 无异常值(或只包含已被识别/理解的异常值)
- 遵循一个 “整洁的数据 “结构
混乱数据的常见症状
- 特殊字符(例如,数字值中的逗号)
- 数值存储为文本/字符数据类型
- 重复的行
- 拼写错误
- 不准确的地方
- 空白
- 缺少的数据
- 零值而不是空值的情况不同。
让我们开始在R中实现数据清洗吧
为此,我们将使用R中的内置数据集(空气质量数据集)。
head(airquality)
输出
在上述数据集中,我们可以清楚地看到列内的NA值,这将产生错误或不产生机器学习模型的准确预测。
处理R中的缺失值
为了处理缺失值,我们将检查数据集的列,如果我们发现列内有一些缺失的数据,那么就会产生NA值作为输出,这对每个模型来说都不是好事。因此,让我们使用mean()方法来检查它。
mean(airquality$Solar.R)
输出
<NA>
检查另一列
mean(airquality$Ozone)
输出
<NA>
检查另一列
在这里,我们得到了Wind列的平均值,这意味着它在这一列中没有任何遗漏值。
mean(airquality$Wind)
输出
9.95751633986928
处理NA值
在两列中使用na.rm处理NA值。
mean(airquality$Solar.R, na.rm = TRUE)
输出
185.931506849315
同时对另一列进行同样的操作。
mean(airquality$Ozone, na.rm = TRUE)
输出
42.1293103448276
数据清理操作
在检查了数据集的摘要后,我们发现在两列(臭氧和Solar.R)中出现了NA的数字。
summary(airquality)
输出
我们可以用boxplot来清楚地看到不规则的数据。
boxplot(airquality)
输出
用is.na()方法去除不规则的数据。
New_df = airquality
New_dfOzone = ifelse(is.na(New_dfOzone),
median(New_dfOzone,
na.rm = TRUE),
New_dfOzone)
输出
在另一列中执行相同的操作。
New_dfSolar.R = ifelse(is.na(New_dfSolar.R),
median(New_dfSolar.R,
na.rm = TRUE),
New_dfSolar.R)
现在可以清楚地看到,我们没有任何使用汇总方法的不干净的数据。
summary(New_df)
输出
我们可以清楚地看到,我们的数据框架内没有任何丢失的数据。
head(New_df)
输出
现在我们的boxplot异常值也没有显示错误。
boxplot(New_df)