r中不包括NA的唯一元素的数量

All*_*ang 5 r

我想要计算向量中的唯一元素的数量,但不包括NA元素.

基本上,我想使用类似于length(unique(x))na.rm = TRUE参数的东西,所以如果我length(unique(c(1,2,3,NA,2)))将返回3

我尝试过data.table,uniqueN但这也没有这个选项.有没有快速简便的方法来做到这一点,而不是必须对列进行两个单独的操作?

Dav*_*son 14

您可以na.omit先使用:

x <- c(1,2,3,NA,2)
length(unique(na.omit(x)))
Run Code Online (Sandbox Code Playgroud)

或者,n_distinct从dplyr有一个na_rm参数:

library(dplyr)
n_distinct(x, na.rm = TRUE)
Run Code Online (Sandbox Code Playgroud)


Mat*_*wle 6

data.table::uniqueNna.rmv1.9.7+ 版本。