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

使用readxl导入数据集时列名出现\r\n\t特殊字符的原因及解决咨询

解决readxl导入Excel列名含特殊字符的问题

你遇到的\r\n\t是回车、换行、制表符这类不可见控制字符,是原始Excel文件的列名自带的,和SQL遗留或编码关系不大,且readxl目前已移除encoding参数,以下是几种直接有效的解决办法:

方法1:用janitor包自动清理所有列名

janitor包的clean_names()能自动去除特殊字符、转换为规范的小写蛇形命名,操作简单:

library(tidyverse)
library(readxl)
library(janitor)

df <- read_xlsx("Filepath/Diamond Datasheet.xlsx") %>%
  clean_names()

处理后第一列会变为country,年份列会转为x2010这类格式。

方法2:手动重命名目标列

若仅需修改第一列,直接用rename()指定新列名即可:

df <- read_xlsx("Filepath/Diamond Datasheet.xlsx") %>%
  rename(country = `\r\n\tCountry`)

注意原列名需放在反引号中,因为包含特殊字符。

方法3:导入时自定义列名

在read_xlsx()中通过col_names参数手动定义所有列名,跳过原始脏表头:

col_names <- c("country", 2010:2020)
df <- read_xlsx("Filepath/Diamond Datasheet.xlsx", col_names = col_names, skip = 1)

skip=1表示跳过原始表头行,使用自定义列名替代。

批量清理列名特殊字符(自定义逻辑)

如果需要批量移除所有列名中的控制字符,可使用字符串处理函数:

library(stringr)

df <- read_xlsx("Filepath/Diamond Datasheet.xlsx")
names(df) <- str_replace_all(names(df), "[\\r\\n\\t]", "")

该代码会删除所有列名里的回车、换行、制表符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 10:15:47