R语言如何将带单位的欧元货币格式数据转换为整数类型
R语言货币格式身价字段转换方案
核心处理逻辑
针对带小数、多单位的货币字符串转换需求,核心处理思路是拆分数值部分和单位部分,根据单位匹配换算系数后再计算最终值,示例代码如下:
# 加载依赖包 library(stringr) library(dplyr) # 构造示例数据框 df <- data.frame( Value = c("€110.5M", "€1M", "€200k", "€ 0", "€52M", "€1.5M") ) # 转换身价字段 df <- df %>% mutate( # 移除欧元符号和所有多余空格 clean_str = str_remove_all(Value, "€|\\s"), # 提取纯数值部分(支持小数) num_part = as.numeric(str_extract(clean_str, "\\d+\\.?\\d*")), # 提取单位并统一转小写,兼容大小写写法 unit_part = str_to_lower(str_extract(clean_str, "[kKmM]$")), # 根据单位换算为欧元原值 Value_euro = case_when( unit_part == "k" ~ num_part * 1000, unit_part == "m" ~ num_part * 1000000, TRUE ~ num_part ), # 可选:转换为整数类型 Value_euro_int = as.integer(Value_euro) )
可选货币类型适配
如果需要保留货币格式显示同时支持数值运算,可以使用formattable包的货币类型:
library(formattable) df$Value_currency <- currency(df$Value_euro, symbol = "€")
处理后的字段可以直接传入ggplot2等绘图工具做可视化,不需要额外转换。
内容的提问来源于stack exchange,提问作者lucasgoddamn
相关产品推荐
相关产品推荐

