我有一个巨大的向量,它有两个NA值,我试图找到这个向量的最大值(向量都是数字),但我不能这样做,因为NA值。
我如何删除NA值,以便我可以计算最大?
我有一个巨大的向量,它有两个NA值,我试图找到这个向量的最大值(向量都是数字),但我不能这样做,因为NA值。
我如何删除NA值,以便我可以计算最大?
当前回答
max表示有一个额外的参数na。rm,你可以设置为TRUE。
除此之外,如果你真的想要删除NAs,只需使用如下方法:
myvec[!is.na(myvec)]
其他回答
na。省略函数是很多回归例程内部使用的:
vec <- 1:1000
vec[runif(200, 1, 1000)] <- NA
max(vec)
#[1] NA
max( na.omit(vec) )
#[1] 1000
max表示有一个额外的参数na。rm,你可以设置为TRUE。
除此之外,如果你真的想要删除NAs,只需使用如下方法:
myvec[!is.na(myvec)]
使用purrr中的discard(用于列表和向量)。
discard(v, is.na)
好处是很容易使用管道;或者使用内置的子设置函数[:
v %>% discard(is.na)
v %>% `[`(!is.na(.))
注意na。省略对列表无效:
> x <- list(a=1, b=2, c=NA)
> na.omit(x)
$a
[1] 1
$b
[1] 2
$c
[1] NA
另一个选项使用complete。这样的案例:
d <- c(1, 100, NA, 10)
result <- complete.cases(d)
output <- d[result]
output
#> [1] 1 100 10
max(output)
#> [1] 100
于2022-08-26与reprex v2.0.2创建
你可以叫max(vector, na)rm = TRUE)。更一般地,您可以使用na.省略()函数。