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

如何用R读取列名无引号但字段含逗号的特殊CSV文件?

读取特殊嵌套引号CSV的R解决方案

针对这种列名无引号、整行数据被引号包裹且字段含内部引号+逗号的CSV,直接用标准读取函数会解析错误,以下是简便的处理步骤:

步骤1:读取文件所有行

先用readLines读取文件的每一行内容,保留原始结构:

lines <- readLines("your_file.csv")

步骤2:清理格式问题

通过正则表达式处理多余的引号,修正CSV结构:

# 移除每行首尾的包裹引号
processed_lines <- gsub('^"|"$', '', lines)
# 移除字段内部的包裹引号(如果不需要保留引号的话)
processed_lines <- gsub('"(.*?)"', '\\1', processed_lines)

如果需要保留字段内部的引号,可改为替换字段内部的逗号为临时字符(比如分号),后续再还原:

# 替换字段内部引号里的逗号为分号
processed_lines <- gsub('"(.*?),(.*?)"', '"\\1;\\2"', processed_lines)
# 移除整行首尾的引号
processed_lines <- gsub('^"|"$', '', processed_lines)

步骤3:读取处理后的内容

用基础R或tidyverse工具读取清理后的文本内容:

# 基础R方法
df <- read.csv(text = processed_lines, header = TRUE, stringsAsFactors = FALSE)

# tidyverse方法
library(readr)
df <- read_csv(processed_lines)

验证结果

处理后的数据框会正确识别字段:

print(df)
#   variable.1 variable.2 variable.3
# 1          3        2,1        1,2
# 2          2        3,2        2,3
# 3          1        4,3        3,4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 01:03:26