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

如何在R中正确读取多列分布的CSV文件以实现多文件合并

问题定位

你的读取代码确实存在配置错误,核心问题如下:

  • 你读取的是CSV(逗号分隔值)格式文件,但代码中sep参数设置为"\t"(制表符分隔符),和文件实际的列分隔符不匹配。R无法识别列边界时会把整行内容判定为同一列,自然会出现表头拼接为字符串、所有数据挤在第一列的问题。
  • 额外小问题:read.csv()的空值参数正确写法为na.strings(复数形式),你写的na.string属于参数名拼写错误,部分R版本会忽略该错误配置,导致空值识别不生效。
  • 你之前读取的另外两个文件全在第一列,本质也是分隔符配置和文件格式不匹配导致的异常读取结果,只是刚好符合你当时的合并需求而已。
正确读取多列CSV的方案

首先先通过记事本打开目标CSV文件,确认表头/数据之间的实际分隔符,再对应调整代码:

# 1. 标准逗号分隔CSV读取代码
events <- read.csv(
  file = "替换为你的实际文件路径.csv",
  header = TRUE,
  sep = ",",
  na.strings = "NA",
  fill = TRUE
)

# 2. 若打开文件发现列之间是制表符分隔,说明文件实际为TSV格式(仅后缀误写为.csv),修改sep参数即可:
events <- read.csv(
  file = "替换为你的实际文件路径.csv",
  header = TRUE,
  sep = "\t",
  na.strings = "NA",
  fill = TRUE
)

# 3. 若分隔符为分号(欧洲地区导出的CSV常用分号做分隔符),sep设置为";"即可

读取完成后执行head(events)和ncol(events),查看列数、表头、首行数据是否符合预期,确认没有列合并问题。

多文件合并补充说明

如果最终需要三个文件合并后格式一致,可以根据业务需求二选一处理:

  • 方案一:修正另外两个单列文件的读取代码,读取为正常多列格式后,按列名或列顺序合并
  • 方案二:将第三个文件按需求合并为单列格式后,和另外两个文件按行合并

如果需要更灵活的读取效果,也可以使用readr包的read_delim()函数,支持自动识别分隔符,读取效率和错误提示都优于基础包的read.csv()。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:36:04