如何计算R中的模式但删除NA值

时间:2016-02-03 11:05:56

标签: r na mode

我可以使用

计算模式
Mode <- function(x) {
 ux <- unique(x) 
tab <- tabulate(match(x, ux)); ux[tab == max(tab)]
}

但是,我的数据框中的NA值比整数多,所以当我运行这个模式时,我会回到NA。

有没有办法以某种方式删除上述函数中的NA值,或者我是否需要从数据框中删除NA值?如果是这样,怎么样?我试过了

DF.omit.NA<- na.omit(DF) ###and na.exclude

并且它没有产生任何数据行。

1 个答案:

答案 0 :(得分:4)

我们可以使用围绕na.omit元素的unique

Mode <- function(x) {
  ux <- na.omit(unique(x) )
 tab <- tabulate(match(x, ux)); ux[tab == max(tab) ]
}

Mode(v1)
#[1] 1

数据

v1 <- c(1, 3, NA, 2, 1, 1, NA, NA, NA)