【发布时间】:2019-08-12 21:41:45
【问题描述】:
我有一个有点凌乱的数据集要清理。一些操作通过强制引入 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
导致将第三个元素强制为数字。有没有办法确定它是导致这种情况的第三个元素,而不是其他 NA(非)值?谢谢!
【问题讨论】:
-
嗯,好的,这绝对适用于这个确切的场景,但我希望可能有更通用的解决方案(例如
warnings())。在我的情况下,我使用read_xlsx()生成一个小标题,然后我需要替换一些已知的有问题的字符串,我使用str_replace()来做。这会生成警告Warning message: In function_list[[k]](value) : NAs introduced by coercion,因此警告和生成它的函数是模糊的。是否有解决此问题的一般方法或强制 R 给我生成警告的行号的方法?我的前任。太简单了,我觉得 -
我不能这样做,因为那样我会丢失那些数据。我想读入该数据,然后对其进行更改,以便我可以将字段强制转换为数字。
-
谢谢!我想我可以根据你的建议做点什么。我正在尝试制作一个新示例,但在这样做时,我自己的代码工作得很好,这正是困难所在——我不确切知道导致问题的数据是什么——所以我无法重现它。不管怎样,我会用你的建议来帮助侦探。谢谢!
标签: r validation na