计算 R 中的唯一值
在本文中,我们将看到如何在 R 编程语言中计算唯一值。
例子:
Input: 1 2 3 2 4 5 1 6 8 9 8 6 6 6 6
Output: 8
方法一:使用length(unique())函数
与列表一起提供的 Unique()函数将仅给出其中唯一的。后来的 length()函数可以计算频率。
句法:
length(unique( object )
示例 1:
R
# 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
# 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
# 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
# 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
v <- c(5,NA,NA,2,3,4,5,3,7,8,9,5)
v
print("Count of unique values")
table(v)
R
# 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
# 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
# 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
# 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] “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
方法二:使用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()函数将输出转换为 Dataframe
此方法将返回每个元素的单独频率。
句法:
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
方法四:使用aggregate()函数
在应用特定函数后, aggregate()函数将始终返回一个包含来自输入数据帧的所有唯一值的数据帧。我们只能申请一个聚合函数中的单一函数
Syntax: aggregate(data.frame(count = v), list(value = v), length)
Parameters:
formula: the variable(s) of the input data frame we want to apply functions on.
data: the data that we want to use for group by operation.
function: the function or calculation to be applied.
例子:
电阻
# 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