Evan の Logbook
✨ Updates
🎨 Style Guide
🧠 Creative Resources
🗒️ Mind Notes
🧭 Knowbase
📘 SOPs
🩺 Medical Research
🛠️ Tech Chronicles
💰 Fortune Blueprint
📈 R Visionary
📊 Statistics
🖼️ BioVis
🔢parse_number():提取字符串中的数字
type
status
date
slug
summary
tags
category
icon
password
comment
parse_number() 是 readr 包中用于从混合文本中解析数值的便捷函数。它会忽略非数字字符(如单位、货币符号、百分号等),并将提取出的数字转换为双精度数值(double)。1. 函数原型
参数 | 说明 |
x | 要解析的字符向量( character) |
locale | 本地化设置,可控制小数点符号、千分位分隔符、货币符号等( readr::default_locale()) |
... | 其他传递给底层解析器的参数 |
2. 基本示例
3. 场景演示
3.1 带单位的数据
3.2 清洗价格或金额
3.3 处理百分比
4. 批量清洗示例
配合
dplyr::mutate() 和 across(),一次处理多列:5. 小贴士
- 自动忽略所有前后非数字字符,保留纯数字及小数点。
- 字符串中无数字时返回
NA。
- 若要处理带分组千分位(如
1,234)或欧式小数格式(1.234,56),需调整locale:
- 对百分比除以 100,可写作
parse_number(x) / 100。
- 对于复杂的格式(如负号、括号表示负值),可结合正则预处理或后续
sign()调整。
总结parse_number()在清洗带有单位、符号或千分位分隔符的字符数据时极其高效,配合dplyr管道可快速完成批量数值提取,是日常数据预处理的必备武器。
Prev
pivot_wider():长表 → 宽表(long → wide)
Next
pivot_longer():宽转长(wide → long)
Loading...
YouTube 使用笔记