我如何知道哪些 NA 是通过强制引入的?

Ngw*_*ama 6 validation r na

我有一个有点混乱的数据集需要清理。一些操作通过强制引入 NA,但即使没有强制,数据集也包含许多 NA。我如何确定哪些行或元素引入了 NA。

例如

a <- c(1,2,"three", rep(NA, times=10))
as.numeric(a)
 [1]  1  2 NA NA NA NA NA NA NA NA NA NA NA
Warning message:
NAs introduced by coercion 
Run Code Online (Sandbox Code Playgroud)

结果将第三个元素强制为数字。有没有办法确定是第三个元素导致了这种情况,而不是其他 NA(非)值?谢谢你!

mar*_*kus 5

尝试

which(is.na(as.numeric(a)) != is.na(a))
3
# Warning message:
# In which(is.na(as.numeric(a)) != is.na(a)) : NAs introduced by coercion 
Run Code Online (Sandbox Code Playgroud)