R语言 计算唯一值

R语言 计算唯一值

在这篇文章中,我们将看到如何在R编程语言中计算唯一值。

例子

输入: 1 2 3 2 4 5 1 6 8 9 8 6 6 6 6

输出 :8

方法1:使用length(unique())函数

Unique()函数提供了一个列表,它只给出其中的唯一值。之后length()函数可以计算出频率。

语法

length(unique(object) )

例子 1 :

# Sample vector
v<-c(1,2,3,2,4,5,1,6,8,9,8,6,6,6,6)
v
  
print("Unique values")
  
# count unique elements
length(unique(v))
R

输出

[1] 1 2 3 2 4 5 1 6 8 9 8 6 6 6 6 

[1] "Unique values" 

[1] 8 
Bash

对于一个有多个NA值的列表,它将被算作1个独立的实体。

例2 :

# Sample vector
v<-c(NA,2,NA,3,2,4,5,1,6,8,9,8,6,6,6,6)
v
  
print("Unique values")
  
# count unique elements
length(unique(v))
R

输出

[1] na 2 na 3 2 4 5 1 6 8 9 8 6 6 6 6 

[1] "Unique values" 

[1] 9 
Bash

例3 :

# Sample dataframe
df<-data.frame(c1=c(NA,2,NA,3,2,4),c2=c(5,1,6,6,6,6))
df
  
print("Unique values")
  
# count unique elements
length(unique(df$c1))
R

输出

C1 C2 

1 NA 5 

2 2 1 

3 NA 6 

4 3 6 

5 2 6 

6 4 6 

[1] "Unique values" 

[1] 4 
Bash

这种方法不适用于矩阵

例4 :

# Sample matrix
mat<-matrix(c(NA,2,NA,3,2,4,5,1,6,6,6,6),ncol=3)
mat
  
print("Unique values")
  
# count unique elements
length(unique(mat))
R

输出

[,1] [,2] [,3] 

[1,] NA 2 6 

[2,] 2 4 6 

[3,] NA 5 6 

[4,] 3 1 6 

[1] "Unique values" 

[1] 12 
Bash

方法2:使用table()函数

我们将使用table()函数来获取唯一值的数量。R语言中的 table() 函数是用来创建一个带有变量名称和频率的表格形式的数据的分类表示。

语法:

table(object)

例1 :

v <- c(5,NA,NA,2,3,4,5,3,7,8,9,5)
v
  
print("Count of unique values")
table(v)
R

输出

[1] 5 na na 2 3 4 5 3 7 8 9 5 

[1] "Count of unique values" 

v 

2 3 4 5 7 8 9 

1 2 1 3 1 1 1 
Bash

例2 :

# Sample dataframe
df<-data.frame(c1=c(NA,2,NA,3,2,4),c2=c(5,1,6,6,6,6))
df
  
print("Unique values")
  
# count unique elements
table(df$c2)
R

输出

C1 C2 

1 NA 5 

2 2 1 

3 NA 6 

4 3 6 

5 2 6 

6 4 6 

[1] "Unique values" 

1 5 6 

1 1 4 
Bash

例3 :

# Sample matrix
mat<-matrix(c(NA,2,NA,3,2,4,5,1,6,6,6,6),ncol=3)
mat
  
print("Unique values")
  
# count unique elements
table(mat)
R

输出

[,1] [,2] [,3]

[1,]   NA    2    6

[2,]    2    4    6

[3,]   NA    5    6

[4,]    3    1    6

[1] Unique values

mat

1 2 3 4 5 6

1 2 1 1 1 4
Bash

方法3:使用 as.data.frame() 函数将输出转换为数据框架

这个方法将返回每个元素的单独频率。

语法

as.data.frame(table(v))

例子

# Sample vector
v<-c(1,2,3,2,4,5,1,6,8,9,8,6,6,6,6)
v
  
print("Count of Unique values")
  
as.data.frame(table(v))
R

输出

[1] 1 2 3 2 4 5 1 6 8 9 8 6 6 6 6

[1] Count of Unique values

v Freq

1 1    2

2 2    2

3 3    1

4 4    1

5 5    1

6 6    5

7 8    2

8 9    1
Bash

方法4:使用aggregate()函数

aggregate() 函数总是返回一个数据框,其中包含输入数据框中应用特定函数后的所有唯一值。我们只能在一个聚合函数中应用一个单一的函数

语法: aggregate(data.frame(count = v), list(value = v), length)

参数

公式 :我们要应用函数的输入数据框的变量。
数据 :我们希望用于分组操作的数据。
函数 :要应用的函数或计算。

例子

# Sample vector
v<-c(1,2,3,2,4,5,1,6,8,9,8,6,6,6,6)
v
  
print("Count of Unique values using aggregate() function")
  
aggregate(data.frame(count = v), list(value = v), length)
R

输出

[1] 1 2 3 2 4 5 1 6 8 9 8 6 6 6 6

[1] Count of Unique values using aggregate() function

value count

1     1     2

2     2     2

3     3     1

4     4     1

5     5     1

6     6     5

7     8     2

8     9     1
Bash

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册