读取CSV文件时空首列名被填充为X1且多出索引列的解决方法问询
读取CSV文件避免自动填充空列名、额外生成索引列的解决方案
以下分两种常用读取函数场景给出对应配置:
方案1:使用基础R的read.csv()读取
- 针对第一列空列名被自动填充为X1的问题:设置
check.names = FALSE禁止自动修改空列名/含特殊字符的列名,若第一列本身为行索引,额外指定row.names = 1即可直接将第一列值设为数据行名,不会将其识别为普通数据列生成X1列名 - 针对读取后多出额外索引列的问题:通过
row.names = 1将第一列索引值设为行名,不会作为普通数据列保留;后续导出CSV时设置row.names = FALSE即可避免输出额外索引列
示例代码:
df <- read.csv("你的文件路径.csv", check.names = FALSE, row.names = 1)
方案2:使用tidyverse的readr::read_csv()读取
你的示例数据为readr读取生成的spec_tbl_df类型,可按以下步骤处理:
- 针对空列名被填充为X1的问题:设置
name_repair = "minimal"禁止自动修复列名,读取后手动将X1列转换为行名 - 针对额外索引列的问题:转换行名后删除原X1列即可
示例代码:
library(readr) df <- read_csv("你的文件路径.csv", name_repair = "minimal") # 转换行名并删除多余的X1列 rownames(df) <- df$X1 df <- df[, -1]
导出验证
后续需要导出CSV时,添加对应参数避免再次生成多余索引列:
# 基础R导出 write.csv(df, "导出路径.csv", row.names = TRUE) # 需保留行名设为TRUE,否则设为FALSE # readr导出 write_csv(df, "导出路径.csv", col_names = TRUE)
内容的提问来源于stack exchange,提问作者Rfanatic
相关产品推荐
相关产品推荐

