r - 如何在 R 中计算模式但删除 NA 值

标签 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

它没有产生任何数据行。

最佳答案

我们可以使用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)

关于r - 如何在 R 中计算模式但删除 NA 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35175311/

相关文章:

r - 如何将 NA 移动到 R data.frame 列的顶部?

linux - Linux下查看原始文件权限的方法

r - 将多个回归表合并为一个,以便在 xtable 中与 R 中的 Sweave 一起使用

r - 使用循环和命名约定在数据框中创建新的命名变量

r - 在缺少元素的子列表列表中扩充子列表作为 NA

r - 仅对最后一个值插入 NA

c - 如何生成 .exe 驱动程序而不是 .sys?

linux - 没有上下文切换的模式切换与 linux 中的进程

r - 连接数据帧而不返回所有匹配组合

重新编码字符串时,Car 包中的重新编码返回意外符号