删除R中数字前的所有内容

Remove everything before digits in R

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

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

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

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

如果您想从文本中提取数字,可以使用 readr 中的 parse_number,无需正则表达式即可完成此操作。

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

根据您的情况使用 df$PriceinGermany <- readr::parse_number(df$PriceinGermany)

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

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

在您的代码中,

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

详情:

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