如何通过排除R中的缺失值来查找向量中唯一值的数量?

如果R向量中存在缺失值,则将其计为向量中的唯一值,因此无法直接进行唯一值的提取。为此,我们需要使用唯一的withna.omit函数。例如。如果我们有一个叫做x的向量,它的值缺失,那么唯一值的提取可以作为length(unique())完成。na.omit(x)

例1

x1<−sample(c(NA,rpois(5,1)),200,replace=TRUE)
x1
输出结果
[1] 0 0 1 1 1 NA NA 0 1 1 0 NA 1 0 0 NA 0 0 NA 1 0 0 0 1 1
[26] 0 0 0 0 0 NA 1 0 1 NA 1 0 1 1 1 1 1 1 0 1 1 0 0 0 0
[51] 1 NA 1 0 0 NA NA 0 0 0 1 NA 0 0 1 NA 1 1 0 1 NA 0 0 1 NA
[76] 1 NA 1 0 NA 1 NA 0 0 1 0 0 NA 1 0 1 0 1 0 1 1 0 0 0 0
[101] 0 0 1 1 0 1 0 NA 0 NA 0 0 0 1 0 0 0 0 NA NA NA 0 1 0 0
[126] 1 0 1 0 0 0 0 1 0 1 0 0 NA 1 1 1 0 0 0 0 1 1 0 NA 0
[151] 0 NA 1 0 0 0 1 1 0 NA 1 1 0 0 1 0 0 NA 0 0 1 0 0 0 1
[176] 1 1 0 NA NA 0 1 1 NA 0 NA 0 1 1 0 0 1 0 1 0 NA 1 1 1 0

示例

length(unique(na.omit(x1)))
输出结果
[1] 2

例2

x2<−sample(c(NA,0,1,2),200,replace=TRUE)
x2
输出结果
[1] NA 0 0 NA 0 0 0 NA 2 1 2 0 0 NA 2 1 1 0 NA 2 2 NA 2 NA 1
[26] 1 2 1 1 1 2 0 2 0 0 0 1 NA NA 1 1 2 1 0 1 0 NA 0 0 1
[51] NA NA 0 0 0 0 NA 2 0 NA 0 2 0 NA 0 NA NA 2 0 0 0 NA 2 NA 1
[76] NA 2 0 1 2 0 2 NA 2 NA NA 1 1 0 NA 2 NA 0 0 NA NA 0 NA 1 NA
[101] 2 2 2 1 NA 1 1 2 0 1 2 2 2 2 1 0 2 NA 1 NA 1 1 NA 0 NA
[126] 0 NA 1 NA 2 NA 1 NA NA 2 NA 2 0 1 2 1 0 1 1 0 NA NA 1 0 1
[151] NA 0 0 2 NA NA 2 NA NA 1 NA 2 0 NA 1 NA 0 NA 0 0 2 1 0 NA 2
[176] 1 0 2 1 1 1 0 0 0 NA NA NA 0 0 NA 1 0 NA NA NA NA 1 NA 0 2

示例

length(unique(na.omit(x2)))
输出结果
[1] 3

范例3

x3<−sample(c(NA,0:9),200,replace=TRUE)
x3
输出结果
[1] NA NA 8 4 1 8 8 4 0 6 5 1 8 2 7 2 2 1 7 8 3 9 0 8 9
[26] 6 4 5 NA NA 2 1 1 3 1 8 6 7 1 5 9 5 8 9 1 5 5 3 1 2
[51] NA 6 3 9 NA 4 3 NA NA 9 4 NA 8 6 1 7 3 9 3 4 5 1 8 6 1
[76] 9 7 4 8 7 9 7 1 9 NA 5 6 8 NA 6 8 6 9 8 6 0 8 9 1 1
[101] 0 4 7 6 4 8 2 5 2 7 9 4 3 8 3 7 2 2 6 6 NA 0 8 2 4
[126] 2 6 NA NA 2 5 2 7 6 8 4 7 7 7 5 0 8 1 4 2 5 9 8 4 4
[151] 9 1 3 9 3 1 6 8 7 6 3 0 2 NA 6 1 0 2 3 0 2 NA 9 0 2
[176] 8 5 5 0 2 5 8 4 6 3 9 0 2 7 8 4 4 NA 5 8 NA NA NA 4 0

示例

length(unique(na.omit(x3)))
输出结果
[1] 10

例子4

x4<−sample(c(NA,1:10),200,replace=TRUE)
x4
输出结果
[1] 1 NA NA 5 8 10 1 2 9 1 8 9 4 9 2 6 1 NA 9 5 8 3 4 10 7
[26] 5 5 6 2 4 8 7 9 2 7 3 8 10 7 8 3 5 5 7 6 4 4 7 5 7
[51] 9 8 5 6 6 4 5 5 5 2 10 7 7 NA 3 5 5 1 5 1 2 2 4 9 7
[76] 1 3 8 7 NA 10 2 4 7 10 6 6 7 4 10 3 10 3 2 4 NA 7 10 8 7
[101] 10 10 6 1 NA 9 1 6 NA 4 1 5 10 10 6 NA 10 NA 2 5 2 5 2 10 10
[126] 6 7 4 2 4 7 6 10 4 5 10 1 5 4 8 6 6 6 1 10 10 8 7 2 NA
[151] 3 9 5 1 10 1 4 5 8 7 4 2 10 10 6 5 8 NA 8 6 9 4 2 NA NA
[176] NA 7 NA 1 1 5 8 8 5 9 2 NA 2 2 8 2 4 4 6 4 9 10 8 3 NA

示例

length(unique(na.omit(x4)))
输出结果
[1] 10

范例5

x5<−sample(c(NA,5,10,15,20,25),200,replace=TRUE)
x5
输出结果
[1] 5 5 15 5 15 10 15 15 20 15 5 10 25 5 NA NA 20 25 10 NA NA 20 10 10 15
[26] 10 NA 25 10 25 5 15 NA 15 NA 15 15 5 10 5 5 NA 15 NA 10 5 10 NA NA NA
[51] 25 5 10 NA 10 10 15 20 20 5 25 20 20 20 25 20 15 NA 10 5 15 15 10 5 5
[76] 5 NA 25 5 10 20 NA 25 10 20 20 NA NA 10 5 25 25 20 25 15 10 NA 25 5 15
[101] 25 NA 25 NA 5 NA 10 5 25 25 NA 15 20 5 20 5 15 15 NA 25 25 5 20 25 NA
[126] 25 20 5 25 5 15 25 10 15 NA 10 NA 15 25 15 25 NA NA 15 25 NA 25 25 NA 20
[151] NA NA 20 5 25 20 15 25 10 20 5 10 NA 25 25 NA 5 15 25 20 10 15 NA 5 5
[176] 10 NA 5 10 10 5 25 NA 5 5 10 10 5 20 10 20 NA 25 5 5 10 25 20 25 20
输出结果
length(unique(na.omit(x5)))
输出结果
[1] 5

范例6

x6<−sample(c(NA,rnorm(5)),80,replace=TRUE)
x6
输出结果
[1] −2.4891929 −2.4891929 −0.1627979 −1.8763364 −0.6250307 NA
[7] −0.1627979 NA −0.1627979 NA −0.6250307 −0.6250307
[13] −2.4891929 −0.1627979 −2.4891929 NA NA −2.4891929
[19] −2.4891929 −0.1627979 −2.4891929 −0.6250307 −1.8763364 −1.8763364
[25] −1.8763364 −2.4891929 −2.4891929 −2.4891929 −2.4891929 −1.8763364
[31] −2.4891929 NA −0.6250307 NA −1.8763364 −0.1627979
[37] −2.4891929 −0.6250307 −2.4891929 −0.6250307 −1.8763364 −1.8763364
[43] NA −2.4891929 −0.6250307 −0.6250307 −0.6250307 −0.6250307
[49] −0.1627979 −0.6250307 −0.6250307 −2.4891929 −1.8763364 NA
[55] −2.4891929 −0.1627979 −0.2147164 −1.8763364 −2.4891929 −1.8763364
[61] −0.2147164 −1.8763364 −2.4891929 −0.6250307 −0.6250307 −0.6250307
[67] −0.1627979 −0.6250307 −2.4891929 −2.4891929 −0.6250307 −0.2147164
[73] −2.4891929 −0.1627979 −0.1627979 −0.2147164 −0.2147164 −0.6250307
[79] −2.4891929 −0.6250307

示例

length(unique(na.omit(x6)))
输出结果
[1] 5