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))
输出
[1] 1 2 3 2 4 5 1 6 8 9 8 6 6 6 6
[1] "Unique values"
[1] 8
对于一个有多个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))
输出
[1] na 2 na 3 2 4 5 1 6 8 9 8 6 6 6 6
[1] "Unique values"
[1] 9
例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))
输出
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
这种方法不适用于矩阵
例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))
输出
[,1] [,2] [,3]
[1,] NA 2 6
[2,] 2 4 6
[3,] NA 5 6
[4,] 3 1 6
[1] "Unique values"
[1] 12
方法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)
输出
[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
例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)
输出
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
例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)
输出
[,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
方法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))
输出
[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
方法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)
输出
[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