为了账号安全,请及时绑定邮箱和手机立即绑定

从向量中删除NA值

/ 猿问

从向量中删除NA值

跃然一笑 2019-10-16 13:05:58

我有一个具有几个NA值的巨大向量,我试图在该向量中找到最大值(向量是所有数字),但是由于NA值的原因我无法做到这一点。

如何删除NA值,以便可以计算最大值?


查看完整描述

3 回答

?
胡说叔叔

尝试?max一下,您会看到它实际上有一个na.rm =参数,默认情况下设置为FALSE。(这是用于许多其它的R的功能,包括常见的默认sum(),mean()等)


设置na.rm=TRUE可以满足您的要求:


d <- c(1, 100, NA, 10)

max(d, na.rm=TRUE)

如果确实要删除所有NA,请改用以下惯用法:


d <- d[!is.na(d)]

最后一点:其他函数(例如table(),lm()和sort())具有NA相关的参数,这些参数使用不同的名称(并提供不同的选项)。因此,如果NA导致您在函数调用中遇到问题,则值得检查函数参数中的内置解决方案。我发现通常已经有一个了。


查看完整回答
反对 回复 2019-10-16
?
米脂

该na.omit函数是内部许多回归例程使用的函数:


vec <- 1:1000

vec[runif(200, 1, 1000)] <- NA

max(vec)

#[1] NA

max( na.omit(vec) )

#[1] 1000


查看完整回答
反对 回复 2019-10-16
?
阿波罗的战车

万一刚接触R的人想要简化对原始问题的回答


如何从向量中删除NA值?


这里是:


假设您有一个向量foo,如下所示:


foo = c(1:10, NA, 20:30)

运行length(foo)给出22。


nona_foo = foo[!is.na(foo)]

length(nona_foo) 为21,因为NA值已被删除。


请记住会is.na(foo)返回一个布尔矩阵,因此foo使用与此值相反的索引将为您提供所有非NA元素。


查看完整回答
反对 回复 2019-10-16
  • 3 回答
  • 0 关注
  • 90 浏览
我要回答

相关问题推荐

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信