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

如何用R的read.csv正确导入含跨多行引号的CSV文件?

解决跨行引号CSV的读取问题及列数不一致的排查方案

针对你遇到的跨行引号CSV读取难题,以及部分文件列数异常的问题,我给你整理了一套可靠的解决方案,同时结合你的词分析需求给出优化建议:

一、优先用readr包处理跨行引号(推荐)

Base R的read.csv在处理跨行引号时容易出现解析错误,而readr包的read_csv函数采用了更现代的解析引擎,默认就能正确识别跨行的双引号,同时保留引号内的逗号(不会被当成分隔符)。

步骤1:安装并加载依赖包

install.packages(c("readr", "purrr"))
library(readr)
library(purrr)

步骤2:批量读取所有CSV文件

# 获取所有CSV的完整路径,避免拼接错误
csv_files <- list.files(path = "Plenarprotokolle/", pattern = "\\.csv$", full.names = TRUE)

# 批量读取,强制所有列为字符型(避免类型推断导致列数错位)
AlleProtokolleSafe <- map(csv_files, ~ read_csv(
  .x,
  col_names = FALSE,          # 无表头,符合你的需求
  quote = "\"",               # 识别双引号,处理跨行内容
  col_types = cols(.default = col_character()),  # 所有列按字符读取
  locale = locale(encoding = "UTF-8")            # 指定UTF-8编码
))

这个方法的优势:

  • 自动处理跨行引号,无需额外配置
  • 速度远快于base R的循环读取
  • 读取时会在控制台输出解析警告,帮你定位异常文件的问题

二、排查162/191.csv列数异常的问题

你提到这两个文件只有3列,而其他文件有15列,大概率是这两个文件存在引号不规范的问题(比如未闭合的引号、引号内的特殊字符),导致解析器错误拆分了字段。

用readr的problems()函数可以精准定位问题:

# 单独读取异常文件并查看解析错误
problem_df <- read_csv("Plenarprotokolle/162.csv", col_names = FALSE, locale = locale(encoding = "UTF-8"))
problems(problem_df)

输出会显示具体哪一行、哪一列出现了解析错误(比如expected 15 columns, got 3或者unclosed quote),你可以根据提示手动修正这些文件的格式,或者在读取时添加参数trim_ws = TRUE去除多余空格,尝试修复轻微的格式问题。

三、针对词分析的优化建议

既然你只需要纯文本内容,完全可以在读取后直接提取目标列,避免冗余数据:

# 假设文本内容在第2列(根据你的数据集调整列索引)
all_speech_texts <- map(AlleProtokolleSafe, ~ .x[[2]])

# 合并所有文本为一个向量,方便后续词分析
combined_text <- unlist(all_speech_texts)

如果坚持使用Base R,也可以尝试以下配置,但稳定性不如readr:

AlleProtokolleSafe <- list()
listcsv <- dir(path = "Plenarprotokolle/", pattern = "*.csv")
for (k in 1:length(listcsv)){
  file_path <- file.path("Plenarprotokolle", listcsv[k])
  AlleProtokolleSafe[[k]] <- read.csv(
    file_path,
    sep = ",",
    header = FALSE,
    quote = "\"",
    encoding = "UTF-8",
    fill = TRUE,          # 自动填充缺失列,避免列数不一致报错
    stringsAsFactors = FALSE,
    allowEscapes = FALSE  # 禁止转义引号,避免误解析跨行内容
  )
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:29:16