【问题标题】:Remove everything before digits in R删除R中数字之前的所有内容
【发布时间】:2021-10-19 00:22:21
【问题描述】:

我需要从特定列中删除所有非数字:

原始数据示例:€42,990 我需要在数字之前删除所有内容,请注意,没有空格,所以结果是:42,990

我已经尝试过了,它确实有效,但我相信它可以用更好的方式编写。

df$PriceinGermany <- sub(pattern = ".*?\\D\\D\\D",replace=" ", df$PriceinGermany)

【问题讨论】:

  • pattern="\\D+"

标签: r regex substring


【解决方案1】:

如果你想从文本中提取数字,你可以使用parse_number from readr,它可以在没有正则表达式的情况下做到这一点。

x <- '€42,990'
readr::parse_number(x)
#[1] 42990

在你的情况下使用df$PriceinGermany &lt;- readr::parse_number(df$PriceinGermany)

【讨论】:

    【解决方案2】:

    如果您需要从字符串的开头(开始)删除除数字以外的任何字符,您可以使用

    sub("^\\D+", "", x)
    

    在您的代码中,

    df$PriceinGermany <- sub("^\\D+", "", df$PriceinGermany)
    

    详情

    • ^ - 字符串开头
    • \D+ - 一个或多个非数字字符。

    【讨论】:

      猜你喜欢
      • 2022-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-15
      • 2022-09-22
      • 2021-03-05
      • 1970-01-01
      相关资源
      最近更新 更多