对R中Subset()函数的完整引用

时间:2020-02-23 14:43:56  来源:igfitidea点击:

R语言是分析数据的至高无上的工具,包括数据处理,操纵和分析。
它提供了许多功能,R中的subset()函数就是其中之一。

一般而言,子集是指从基本数据派生或者提取的一组数据。

例如,考虑单词" R-Programming",其中单词" program"是基本单词的子集。
同时," R-lang"不是" R-Programming"的子集。
即使存在R,但母词或者基词中也不会出现字母" lang"。

我希望以上示例将使您更接近于对数据进行子集的概念。
让我们继续探索R中subset()函数的一些好处。

让我们从语法开始

•subset():subset函数将根据给定的参数/条件提取或者返回输入数据的特定部分。

subset(x,condition,select)

其中:

  • x =输入数据文件,向量,矩阵和字符串。

  • 条件=该功能需要满足的输入条件。

  • 选择=选择列数。

R中subset()函数的主要优点

由于以下几个原因,R中的subset()函数很有用:

  • 该子集是内置的R函数,不需要安装其他软件包。

  • R中的filter()函数也执行相同的工作(子集数据)。
    但是,就执行时间而言,subset()函数比过滤器要快得多。

  • 发现其在处理海量数据集方面的重要性。

R中的subset()函数–一个简单的例子

在本节中,借助一个简单的示例,我们将对数据进行子集化。

加载数据集:

#importing dataset 
datasets::airquality

空气质量数据集

在上图中,您可以看到"空气质量"数据集,默认情况下,该数据集在R中可用。
现在,让我们应用subset()函数来提取"臭氧"列中存在的大于30的数据。

#returns values in ozone 
subset(airquality,Ozone > 30)

臭氧值> 30

在上图中,您可以看到"臭氧"列中存在的所有值都大于30(> 30)。
我希望您现在对这个功能有了更好的了解。

让我们进一步研究R中的subset()函数。

使用子集功能的多个条件

在以上各节中,我们向函数传递了一个条件。
现在,让我们尝试将多个条件传递给子集函数,然后看看它是如何工作的。

#function with multiple conditions
subset(airquality, Ozone > 30 & Temp >= 40 & Wind >= 5)

Subset function In R with multiple conditions

在上面的代码中,您可以观察到我们在函数中使用了三个参数。
在输出中,您可以看到我们的所有条件都由subset()函数满足。

这样,您可以轻松地传递尽可能多的条件,该函数将满足有效条件并返回与输出相同的条件。

子集功能中的"选择"参数

子集函数的语法中的" select"参数。
让我们应用此select参数返回特定列。

让我们看看它是如何工作的。

#function with select option 
subset(airquality, Temp>=30 & Ozone >= 30, select = c(Ozone,Temp))

如您在上面的代码中看到的,我们添加了一个" select"参数,该参数返回指定的列,如上面的输出图像所示。

select参数将返回满足上述条件的指定列。
在上面的输出中,您可以看到,臭氧和温度值> 30。

具有多个输入的"选择"参数

在上一节中,我们仅向select参数添加了2个输入。
但是我们的数据集有6列。
因此,在本节中,我们将使用冒号来传递一系列列。

让我们看看它是如何工作的。

subset(airquality, Ozone>30 & Solar.R >30  ,select = c(Ozone:Day)) 

好了,在此输出图像中,您可以清楚地看到我们的子集函数满足了上述条件,并显示了代码中提到的Ozone:Day之间的所有行。

好吧,您已经做到了。
恭喜!!!

在R中使用subset()函数处理分类值

到目前为止,您已经使用数字数据了解了子集函数及其应用。

但是,如果您遇到分类数据怎么办?

让我们看看将上述技术应用于分类数据时会发生什么。

为此,我们使用的是" iris"数据集,默认情况下在R中可用。

#importing dataset
datasets::iris

虹膜数据集

在上述数据集中,"种类"列中有分类数据。

让我们使用以下代码查看此数据中有多少种物种。

#getting unique values in column species  
unique(iris[,"Species"])

Output  = 

Levels: setosa   versicolor   virginica

我们有三个类别,如上所示:
setosa versicolor virginica

好了,我们得到了类别,现在让我们使用subset()函数提取属于特定类别的数据。

#returns specific categories
subset(iris, Species == "setosa")

虹膜数据与物种– setosa

我们在这里使用双等号" =="来比较两个字符串并验证其正确性。
这在许多编程语言中很常见,其中单个等号用于分配值,而双等号用于比较。