【问题标题】:Find character elements in a character vector in a data.table that is mostly numbers [duplicate]在 data.table 中的字符向量中查找字符元素,其中大部分是数字 [重复]
【发布时间】:2018-01-25 15:33:55
【问题描述】:

我可以访问保存为需要清理的 .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 的警告。

我想在我的控制下这样做并摆脱警告。

【问题讨论】:

  • 你是什么意思在你的控制之下
  • 你在寻找类似suppressWarnings的东西吗?

标签: r


【解决方案1】:
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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-17
    • 2020-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多