利用tidyverse提取X列万株前的数字数字之间可能有特殊符号若存在多个则以逗号隔开追加到新列
假设要提取的列名为“某列”,新列名为“数字列”,可以使用以下代码:
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()函数
原文地址: https://www.cveoy.top/t/topic/ebUP 著作权归作者所有。请勿转载和采集!