如何使用 stringr 库删除列中的部分字符串值?

How to remove part of string value in column using stringr library?

我有一个包含列的数据框:

value-1245
value-4578
value-9976

我想从中删除“value-”并将其转换为数字。所以期望的结果是:

1245
4578
9976

怎么做?我尝试了 str_replace(column1, "value-", "") 但它不起作用。

您可以使用 str_remove,它是 str_replace 的快捷方式,带有空替换 ("")

as.numeric(stringr::str_remove(df$column1, "value-"))

或以 R 为基数 -

as.numeric(sub("value-", "", df$column1))

我们可以在 base R

中使用 trimws
as.numeric(trimws(df$column1, whitespace = "value-"))

readr::parse_number

readr::parse_number(df$column1)

我们可以使用 tidyr 包中的 extract_numeric 函数并结合 abs 删除减号:

library(tidyr)
df %>%
    mutate(column1 = abs(extract_numeric(column1)))

输出:

  column1
1    1245
2    4578
3    9976

数据:

df <- data.frame(column1 = c("value-1245", "value-4578","value-9976"))