You need to enable JavaScript to run this app. R语言如何批量删除数据框列中货币符号及单位字符仅保留数值
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何批量删除数据框列中货币符号及单位字符仅保留数值

解决方法

核心逻辑是用正则匹配所有不属于数值组成部分的字符(非负号、非数字、非小数点),一次性批量删除,再转为数值类型即可,不需要逐个指定要删除的符号或单位。

方案1:Base R 实现

适合不想加载额外包的场景,可批量处理多列:

# 指定所有需要清洗的数值列名
cols_to_clean <- c("var1", "var2")

# 批量替换杂字符并转数值
dataset[cols_to_clean] <- lapply(dataset[cols_to_clean], function(col) {
  # [^-0-9.] 表示匹配所有不是-、数字、小数点的字符,替换为空
  as.numeric(gsub(pattern = "[^-0-9.]", replacement = "", x = col))
})

方案2:tidyverse 实现

适配你提供的tibble格式数据集,代码更简洁,支持灵活选择列:

library(dplyr)

dataset <- dataset %>%
  # 批量处理所有以var开头的列,也可以手动写c(var1, var2)指定列
  mutate(across(starts_with("var"), ~ as.numeric(gsub("[^-0-9.]", "", .x))))

处理后结果验证

执行后var1、var2都会转为数值类型,对应内容如下:

Eventvar1var2
Labour Costs YoY13.340.026
Unemployment Change (000's)16.91-0.449
Unemployment Rate-1125.910.89
Jobseekers Net Change1012.749.56

完全符合你要求的清洗效果,列数多的场景也不用手动逐个处理。


内容的提问来源于stack exchange,提问作者Jurgen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 20:45:04