【问题标题】:Convert numerical character strings with multiple decimals to numeric data type in R将具有多个小数的数字字符串转换为R中的数字数据类型
【发布时间】:2019-02-05 21:20:40
【问题描述】:

我的数据框中有一个包含大约 800 万个值的变量,其格式如下:1.275.900.0(字符数据类型)。将它们更改为因子是不行的,因为它会减慢处理速度,所以我需要数字。

我尝试摆脱小数并使用 . . .

df$variable = as.numeric(sub(".", "", df$variable, fixed=TRUE))

不幸的是,我收到了Warning message: NAs introduced by coercion.

我该如何解决这个问题?

【问题讨论】:

  • 试试gsub 而不是sub
  • 好吧,我又遇到了错误,但与之前的尝试不同,它并没有 NA 出整个向量。事实上,大多数东西似乎都在这里。上面有一种情况无法捕捉到,但它是微不足道的,无论如何都会被删除。
  • 我想你可能不得不逃避 .因为否则它会被解释为正则表达式。
  • @TinglTanglBob 由于fixed=TRUE 参数,这不是必需的。问题是sub,它只会替换每个元素中的第一个.,这就是我建议gsub的原因。
  • 但是你想要什么答案? 1.275.900.0 应该变成 1.2759000 或 1275.9000 或 1275900.0 还是 12759000?

标签: r type-conversion


【解决方案1】:

正如markus 所说:

test<-"1.275.900.0"

as.numeric(gsub(".", "", test,fixed=T))

应该会给你你需要的东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 2019-07-04
    • 2018-12-24
    • 1970-01-01
    • 2021-12-08
    • 2016-12-01
    • 2021-02-03
    相关资源
    最近更新 更多