R编程中的unique()函数

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

R中的unique()函数用于消除或者删除向量,数据帧或者矩阵中存在的重复值或者行。

unique()函数在EDA(探索性数据分析)中发现了其重要性,因为它直接识别并消除了数据中的重复值。

在本文中,我们将释放R编程中unique()函数的各种应用。

获取唯一值的缘由

好了,在进入主题之前,很高兴知道其背后的想法。
在这种情况下,它是唯一值。
唯一函数将通过消除重复计数来返回唯一值。

该图告诉您,唯一函数将查找重复项,并消除了返回唯一值的情况。
在以下各节中,您将通过许多插图来教一些好东西。

R中Unique()函数的语法

唯一性:unique()函数用于识别和消除数据中存在的重复计数。

unique(x)

其中:

X =它可以是向量,数据帧或者矩阵。

R中unique()函数的简单示例

如果您的向量具有重复的值,则借助unique()函数,您可以使用单行代码轻松消除那些向量。

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

#An input vector having duplicate values
df<-c(1,2,3,2,4,5,1,6,8,9,8,6)

#elimnates the duplicate values in the vector 
unique(df)

Output = 1 2 3 4 5 6 8 9

在上图中,您可以观察到输入向量具有许多重复值。

将向量传递给唯一函数后,它将消除所有重复值,并仅返回唯一值,如上所示。

在矩阵中查找唯一值

现在,我们将查找矩阵中存在的重复值,并使用唯一函数消除它们。

为此,我们必须首先创建具有重复值的'n'行和列的矩阵。

要创建矩阵,请运行以下代码。

#creates a 6 x 4 matrix having 24 elements 
df<-matrix(rep(1:20,length.out=24),nrow = 6,ncol=4,byrow = T)

[,1] [,2] [,3] [,4]
[1,]    1    2    3    4
[2,]    5    6    7    8
[3,]    9   10   11   12
[4,]   13   14   15   16
[5,]   17   18   19   20
[6,]    1    2    3    4

您可以很容易地注意到,最后一行是完全重复的。
您需要做的就是使用unique()函数,消除这些重复的值。

#removes the duplicate values
unique(df)

[,1] [,2] [,3] [,4]
[1,]    1    2    3    4
[2,]    5    6    7    8
[3,]    9   10   11   12
[4,]   13   14   15   16
[5,]   17   18   19   20

好极了!

你做到了!矩阵中存在的所有重复值都由唯一函数删除,并且返回了仅具有唯一值的矩阵。

在数据框中查找唯一值

到现在为止,我们一直在研究向量和矩阵,以通过消除重复计数来提取唯一值。

在本节中,我们将重点放在获取数据框中存在的唯一值上。

要创建数据框,请运行以下代码。

#creates a data frame
> Class_data<-data.frame(Student=c('Naman','Megh','Mark','Naman','Megh','Mark'),Age=c(22,23,24,22,23,24),Gender=c('Male','Female','Male','Male','Female','Male'))

#dataframe
Class_data

Student Age Gender
1   Naman  22   Male
2    Megh  23  Female
3    Mark  24   Male
4   Naman  22   Male
5    Megh  23  Female
6    Mark  24   Male

如上所述,这是具有重复计数的数据帧。
让我们应用独特的功能来消除此处出现的重复值。

unique(Class_data)

Student Age  Gender
1   Naman  22   Male
2    Megh  23  Female
3    Mark  24   Male

哇!唯一函数通过消除重复值来返回数据框中存在的所有唯一值。

就像这样,通过使用R中的unique()函数,您可以轻松获取数据中存在的唯一值。

查找特定列的唯一值

是的,如果要求您从特定列而不是数据集中获取唯一值怎么办?

不用担心,使用unique()函数,我们还可以从特定列中获取唯一值,如下所示。

#creates a data frame
> Class_data<-data.frame(Student=c('Naman','Megh','Mark','Naman','Megh','Mark'),Age=c(22,23,24,22,23,24),Gender=c('Male','Female','Male','Male','Female','Male'))

#dataframe
Class_data

Student Age Gender
1   Naman  22   Male
2    Megh  23  Female
3    Mark  24   Male
4   Naman  22   Male
5    Megh  23  Female
6    Mark  24   Male

好的,我采用与上一节相同的数据框,以便于理解。

让我们使用独特的功能来消除重复的值。

unique(Class_data$Student)

Output = "Naman" "Megh"  "Mark" 

同样,我们也可以在"年龄"或者"性别"列中获得唯一值。

unique(Class_data$Gender)

"Male"   "Female"

寻找唯一值的长度

在本节中,我们将获取数据中唯一值的计数。
此应用程序对于更好地了解您的数据并为进一步分析做好准备很有用。

#importing the dataset
datasets::BOD

Time  demand
1    1     8.3
2    2    10.3
3    3    19.0
4    4    16.0
5    5    15.6
6    7    19.8

好吧,我们在这里使用BOD数据集。
首先找到唯一值,然后是计数。

#returns the unique value
unique(BOD$demand)

Output = 8.3  10.3 19.0  16.0  15.6  19.8

好的,现在我们在BOD数据集中的需求列中具有唯一值。

现在,我们很好地去找到唯一值的计数。

#returns the length of unique values
length(unique(BOD$demand))

Output =  6