在data.table中查找字符向量中的字符元素,该数据主要是数字

时间:2018-01-25 15:33:56

标签: r

我可以访问保存为我需要清理的.Rdata文件的数据集。所有列都存储为字符,但其中一些实际上是数字。其中一些应该是数字的变量中包含字符串。

我想将所有应该是数字的列转换为数字,并用NA替换任何杂散字符元素。这是一个简单的问题示例。

library(data.table)
temp <- c("1", "2", "3", "notANumber", "4", "5", "NaN2")
dt <- data.table(a = temp)
dt[, a := as.numeric(a)]

此代码的最后一行返回一个警告,指出字符元素被强制为NA。

我想在我的控制下做到这一点并摆脱警告。

1 个答案:

答案 0 :(得分:0)

dt <- transform(dt, a = as.numeric(a))
> class(dt$a)
[1] "numeric"

dt变得像这样

> dt
a
1:  1
2:  2
3:  3
4: NA
5:  4
6:  5
7: NA

该语句返回警告,但结果似乎正确 它可以作为您的解决方案吗?