r - 如何从数据框中的列中提取数字并将它们添加到新列中
问题描述
我有一个名为的数据框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]+")))
我正在使用dplyr
和stringr
库。
我哪里错了?
解决方案
我们可以使用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