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

如何去除R语言数据框缩放后列名的特殊字符[,1]?

解决scale处理后列名带[,1]的dplyr方案

问题根源是scale()函数返回的是矩阵对象,用mutate(across(...))处理后,数值列会被转为矩阵类型,列名自动添加[,1]后缀。下面提供两种贴合dplyr风格的解决方法:

方法一:scale时转为向量(从根源避免后缀)

直接在across里把scale的结果转成向量,不会生成矩阵,列名保持原样:

df <- df %>%
  mutate(across(where(is.numeric), ~as.vector(scale(.x))))

方法二:用rename_with批量修改已生成的列名

如果已经完成scale处理,用dplyr的rename_with工具批量清理列名,适配管道流风格:

df <- df %>%
  rename_with(~sub("\\[.*$", "", .x), where(is.numeric))

这里where(is.numeric)精准定位数值列,正则\\[.*$匹配从[开始到末尾的所有字符并替换为空,彻底去掉[,1]后缀。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 22:22:41