R语言 tidyverse 包提取数据列中数字:含特殊符号和单位
假设要提取的列名为'某列',新列名为'数字列',可以使用以下代码:
library(tidyverse)
data <- data %>%
mutate(数字列 = str_extract(某列, '(\d+[\d,.]*)万株') %>% # 提取数字
str_replace_all(',', '') %>% # 去除逗号
str_replace('万株', '') %>% # 去除单位
as.numeric()) # 转换为数字
其中,str_extract()函数用于提取符合正则表达式的字符串,正则表达式'(\d+[\d,.]*)万株'表示数字后面紧跟着'万株'单位的字符串;str_replace_all()函数用于去除逗号;str_replace()函数用于去除单位;as.numeric()函数用于将字符串转换为数字。
需要注意的是,如果'某列'中存在不符合正则表达式的字符串,则返回的数字列对应的值为NA。如果需要将NA替换为其他值,可以使用replace_na()函数。
原文地址: http://www.cveoy.top/t/topic/nOgB 著作权归作者所有。请勿转载和采集!