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

R语言如何使用rename_with与substring修改列名并提取4位数字?

R 列重命名报错排查与解决方案

报错原因

dplyr::rename_with()的第二个参数要求传入处理列名的函数,你直接传入了已计算完成的字符向量str_sub(names(emp),2,5),类型不匹配因此触发报错。

正确实现

用匿名函数承接匹配到的列名即可,两种等价写法如下:

# 加载依赖包
library(dplyr)
library(stringr)

# 写法1:purrr风格匿名函数,.x代表匹配到的待重命名列名
emp <- rename_with(emp, ~ str_sub(.x, 2, 5), starts_with("X"))

# 写法2:基础R匿名函数写法
emp <- rename_with(emp, function(col_name) str_sub(col_name, 2, 5), starts_with("X"))

运行后,匹配到的X.2008_PLDF、X.2009_SDF会被重命名为2008、2009,county_name列不受影响,符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:12:04