You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用dplyr rename_with重命名列时补零变为空格的异常原因查询

问题原因

该异常是原代码中sprintf格式符使用不规范导致的跨环境差异:

  • 原代码使用%02s作为格式化参数,其中s标识输入为字符串类型,0前缀补零的规则仅对数值类格式符(如d代表整数)生效,对字符串输入的补零行为不属于R的标准定义。
  • 原解决方案的运行环境对字符串类型的%02s做了兼容处理,会自动补零;而你的Windows环境下,字符串输入的%02s会默认用空格填充到指定长度,因此出现了Col_a_ 1这类带空格的列名。
修复代码

将匹配到的数字转为整数,使用数值类格式符%02d即可实现全环境通用的补零效果:

df %>%
  rename_with(~str_replace(., '\\d+', function(m) sprintf('%02d', as.integer(m))), 
              starts_with('Col'))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 17:18:03