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

如何在R中读取存在错误换行的CSV文件

在R中修复CSV文件的系统性换行错误

问题背景

你的CSV文件存在系统性换行错误:frame字段的内容(如"A Frame")被拆分成两行,导致单条观测被拆成两行数据,需要合并这些拆分的行以还原完整观测。

解决步骤

1. 读取原始文件的所有行

用readLines()读取文件的全部文本内容,保留原始换行结构:

# 替换为你的文件路径
raw_lines <- readLines("your_data.csv")

2. 合并拆分的观测行

遍历所有行,累积内容直到凑够完整观测的字段数(根据表头,完整行包含6个逗号,对应7个字段):

fixed_lines <- character(0)
current_line <- ""

for (line in raw_lines) {
  # 统计当前行的逗号数量
  comma_count <- length(gregexpr(",", line)[[1]])
  current_line <- paste0(current_line, line)
  
  # 表头行或完整数据行(含6个逗号)则存入结果
  if (grepl("^,\"id\"", current_line) || comma_count == 6) {
    fixed_lines <- c(fixed_lines, current_line)
    current_line <- ""
  }
}

说明:表头行以,\"id\"开头,单独判断;正常数据行包含6个逗号,对应7个字段,累积到这个条件时就完成一条观测的合并。

3. 读取修复后的内容为数据框

可以直接用textConnection读取处理后的行,无需写入临时文件:

df <- read.csv(textConnection(fixed_lines), header = TRUE, stringsAsFactors = FALSE)

验证结果

查看frame字段确认修复效果:

print(df$frame)

输出应为"A Frame"、"B Frame"这类完整内容。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 06:10:26