删除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+
- 一个或多个非数字字符。
我需要从特定列中删除所有非数字:
原始数据示例:€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+
- 一个或多个非数字字符。