如何从数据框中的列中提取数字并将它们添加到新列中

How to extract numbers from a column in a data frame and add them in a new column

我有一个名为 df 的数据框,它有一列 (Today's price) 作为字符串值。

这是该专栏的摘录:

Today's price
MUR 15,265
MUR 20,000
MUR  9,841

我的数据框 (df) 中需要一个名为“价格”的新列(从“今日价格”列中提取),如下所示:

Price
15265
20000
 9841

这是我所做的,我得到的所有记录都是“NA”,它没有创建“价格”列。

df %>% 
  mutate(Price = as.integer(str_extract("Today's price", "[0-9]+")))

我正在使用 dplyrstringr 库。

我哪里错了?

我们可以使用 parse_number

library(dplyr)
library(readr)
df %>% 
  mutate(Price = parse_number(`Today's price`)) %>% 
  select(-`Today's price`)

更短:

df %>% 
  mutate(Price = parse_number(`Today's price`), .keep = "unused")

输出:

 Price
  <dbl>
1 15265
2 20000
3  9841