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

使用dplyr批量重命名数据集列名时报错的原因是什么

代码错误原因
  • 语法适配错误:dplyr的rename()函数要求传入新列名 = 旧列名的键值对映射,仅适用于替换少量指定列名的场景,你传入的vars(everything())和公式写法不符合rename()的参数规范,才会触发类型为quosures的报错。
  • 函数选择错误:批量替换全部列名的需求,应该使用dplyr专门提供的rename_with()函数,而非rename()。
  • 多余操作:你不需要对newnames做转置操作,列名只需要传入一维字符向量即可,转置只会增加不必要的结构嵌套。
正确实现步骤
  1. 先从newnames数据框中提取新列名的字符向量,假设你的新名称全部存在newnames的第一列:
newnames_vec <- as.character(newnames[[1]])
  1. 用rename_with()完成全部列名替换:
olddata <- olddata %>%
  rename_with(.fn = ~newnames_vec, .cols = everything())

如果你的使用场景只是全量替换列名,基础R的colnames(olddata) <- newnames_vec写法更简洁高效,不需要硬套用dplyr语法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 21:27:04