na.omit 不会删除 NA

问题描述 投票:0回答:1

我正在尝试删除 R 中的 NA。我尝试复制一个简单的示例,我在网上找到了多个地方,但得到了意外的输出。我通过网上搜索找不到错误。我做错了什么?
我使用的是 R 版本 4.3.2。我已经重新启动 R 并清除了全局变量(并再次重新启动 R),并且通过我尝试的任何操作始终得到此结果。

a <- c(1,2,NA,3,4,NA,5,6)
b<- na.omit(a)
b

输出是

[1] 1 2 3 4 5 6
attr(,"na.action")
[1] 3 6
attr(,"class")
[1] "omit"

我期望得到输出 1 2 3 4 5 6

我发现我可以使用

b <- a[!(is.na(a))]
,但很好奇为什么通常建议的 na.omit 不起作用。

r na
1个回答
0
投票

do在输出中获得了预期的值。我认为您误解的是

attr(,"na.action")
attr(,"class")
只是附加到其中包含六个非
NA
数字的数字向量的属性。如果您这样做
b+1
,您将获得递增的值:

b + 1
# [1] 2 3 4 5 6 7
# attr(,"na.action")
# [1] 3 6
# attr(,"class")
# [1] "omit"

如果你确实想使用

na.omit
并抢先删除属性,你可以这样做:

attributes(b) <- NULL
b
# [1] 1 2 3 4 5 6
© www.soinside.com 2019 - 2024. All rights reserved.