首页 > 解决方案 > 如何从数据框中的列中提取数字并将它们添加到新列中

问题描述

我有一个名为的数据框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库。

我哪里错了?

标签: rdataframedplyrstringr

解决方案


我们可以使用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

推荐阅读