《数据科学:R语言实现》——3.6 过滤数据

简介:

本节书摘来自华章计算机《数据科学:R语言实现》一书中的第3章,第3.6节,作者 丘祐玮(David Chiu),更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.6 过滤数据

数据过滤对于希望分析部分数据而不是全部数据集的读者来说是最常见的需求。在数据库操作中,我们可以使用带有where语句的SQL命令获取数据子集。在R中,我们也可以使用方括号来执行过滤操作。

准备工作

按照3.3节“转换数据类型”教程,把导入数据的每个属性转换成合适的数据类型。同时按照3.2节“重命名数据变量”中的步骤,命名employees和salaries数据集的列名。

实现步骤

执行下列步骤,过滤数据。

1.首先,使用head和tail获取employees数据集的前3行和最后3行:
image

2.你也可以使用方括号并给定从1到3的序列获取数据的前3行:
image

3.你还可以指定要选取的列序号:

image
image

4.除了从数据集中抽取行、列序列,你也可以指定具体的行和列,通过索引向量抽取数据子集:
image

5.如果你知道列的名字,也可以使用给定的名称向量选取列:
image

6.另外,你可以使用反向索引排除一些列:
image

7.你也可以使用in和!操作符排除一些属性:
image

8.你还可以设置等号条件获取数据子集:
image

9.你还可以使用比较操作符获取数据子集:
image

10.另外,函数substr也可以抽取部分数据记录:
image

11.正则表达式是另一种获取数据子集的有用而强大的工具:
image

运行原理

在本教程中,我们介绍了如何使用R来过滤数据。在第1步中,我们使用函数head和tail查看前几行和后几行。函数head和tail会默认返回数据集的前6行和后6行数据。我们依然可以在函数的第2个输入参数中指定返回记录的行数。

除了使用函数head和tail,我们也可以使用方括号来获取数据子集。使用方括号时,逗号左边的值表示要抽取的行,逗号右边的值表示要抽取的列。在第2步中,我们介绍了可以通过在逗号左边给出从1到3的序列抽取数据集的前3行。如果我们不在逗号右边指定任何值,这意味着我们会抽取数据集的所有变量。或者,我们也可以在逗号右边指定相关列。 与第3步类似,我们可以通过在逗号右边给定序列,选取第2列到第4列的数据,或者使用给定的索引向量c(3,5)选取相关列。而且,我们还可以使用给定的属性名称向量c("first_name","last_name")选取相关列。

除了选择所需的变量,我们可以使用反向索引排除不需要的列。所以,我们可以在逗号右边放置-6来排除数据集的第6列。我们也可以使用in和!操作符排除某些列名下的数据。在第7步中,我们可以排除first_name和last_name属性下的数据。

而且,我们可以使用给定的条件来过滤数据,类似于SQL。这里,由于需要使用条件来过滤数据记录,我们应该在逗号左边放置过滤标准。所以,在第8~10步中,我们介绍了可以使用等号条件来过滤男性雇员数据,抽取薪水在60 000~70 000之间的数据,并使用函数substr获得前两个字母为Ge的雇员。最后,我们也可以使用函数grep和正则表达式,通过判断名称末尾是否为元音字母,获得雇员数据子集。

更多技能

除了使用方括号,我们也可以使用函数subset来获取数据子集。

1.我们可以选取雇员数据前3行的first_name和last_name:
image

2.我们也可以设置条件,按照gender过滤数据:
image

相关文章
|
4天前
|
Web App开发 数据可视化 数据挖掘
利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)
利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)
|
4天前
|
数据采集 数据可视化
利用R语言进行因子分析实战(数据+代码+可视化+详细分析)
利用R语言进行因子分析实战(数据+代码+可视化+详细分析)
|
4天前
|
移动开发 数据可视化
广义线性模型beta二项分布的淋巴结疾病风险预测可视化R语言2实例合集|附数据代码
广义线性模型beta二项分布的淋巴结疾病风险预测可视化R语言2实例合集|附数据代码
|
4天前
|
机器学习/深度学习 人工智能 数据可视化
【视频】R语言支持向量回归SVR预测水位实例讲解|附代码数据
【视频】R语言支持向量回归SVR预测水位实例讲解|附代码数据
|
4天前
|
机器学习/深度学习 数据可视化
R语言Stan贝叶斯回归置信区间后验分布可视化模型检验|附数据代码
R语言Stan贝叶斯回归置信区间后验分布可视化模型检验|附数据代码
|
4天前
|
机器学习/深度学习 数据采集 算法
数据分享|R语言机器学习预测案例合集:众筹平台、机票折扣、糖尿病患者、员工满意度
数据分享|R语言机器学习预测案例合集:众筹平台、机票折扣、糖尿病患者、员工满意度
|
4天前
|
数据可视化 数据挖掘 索引
R语言层次聚类、多维缩放MDS分类RNA测序(RNA-seq)乳腺发育基因数据可视化|附数据代码2
R语言层次聚类、多维缩放MDS分类RNA测序(RNA-seq)乳腺发育基因数据可视化|附数据代码
|
4天前
|
存储 数据可视化 数据挖掘
R语言层次聚类、多维缩放MDS分类RNA测序(RNA-seq)乳腺发育基因数据可视化|附数据代码1
R语言层次聚类、多维缩放MDS分类RNA测序(RNA-seq)乳腺发育基因数据可视化|附数据代码
|
4天前
|
数据可视化
R语言广义线性混合模型GLMMs在生态学中应用可视化2实例合集|附数据代码2
R语言广义线性混合模型GLMMs在生态学中应用可视化2实例合集|附数据代码
|
4天前
|
数据可视化 数据挖掘
R语言广义线性混合模型GLMMs在生态学中应用可视化2实例合集|附数据代码1
R语言广义线性混合模型GLMMs在生态学中应用可视化2实例合集|附数据代码

热门文章

最新文章