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

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

3.6 过滤数据

数据过滤对于希望分析部分数据而不是全部数据集的读者来说是最常见的需求。在数据库操作中,我们可以使用带有where语句的SQL命令获取数据子集。在R中,我们也可以使用方括号来执行过滤操作。
准备工作
按照3.3节“转换数据类型”教程,把导入数据的每个属性转换成合适的数据类型。同时按照3.2节“重命名数据变量”中的步骤,命名employees和salaries数据集的列名。
实现步骤
执行下列步骤,过滤数据。
1.首先,使用head和tail获取employees数据集的前3行和最后3行:
《数据科学:R语言实现》——3.6 过滤数据_第1张图片
《数据科学:R语言实现》——3.6 过滤数据_第2张图片
《数据科学:R语言实现》——3.6 过滤数据_第3张图片
《数据科学:R语言实现》——3.6 过滤数据_第4张图片

运行原理
在本教程中,我们介绍了如何使用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:
《数据科学:R语言实现》——3.6 过滤数据_第5张图片

2.我们也可以设置条件,按照gender过滤数据:
《数据科学:R语言实现》——3.6 过滤数据_第6张图片

你可能感兴趣的:(《数据科学:R语言实现》——3.6 过滤数据)