读取含引号内带逗号的CSV文件报错的解决方案求助
解决CSV读取时含引号字段内逗号的列数不匹配问题
我完全懂你遇到的困扰!你设置quote=""反而帮了倒忙——当你把引号解析功能关掉后,R会把所有逗号都当作列分隔符,包括categories列里那些被引号括起来的逗号,这就导致解析出来的列数远多于表头的6列,自然报错了。
正确的解决方案其实很简单:
让R正确识别引号括起来的字段,把引号内的内容当成一个整体,不要拆分里面的逗号。你只需要去掉错误的quote=""设置,或者明确指定quote为双引号(默认就是双引号,所以其实可以不用额外设置):
# 基础正确写法 data <- read.csv(file="data.csv", stringsAsFactors=FALSE) # 如果遇到引号识别异常,可明确指定quote参数 data <- read.csv(file="data.csv", quote="\"", stringsAsFactors=FALSE)
额外处理特殊字符(可选)
你的示例里categories列有Men√∫这种乱码,大概率是编码问题,可以加上编码参数修正:
data <- read.csv(file="data.csv", quote="\"", stringsAsFactors=FALSE, encoding="latin1")
验证结果
读取完成后,你可以用str(data)查看数据结构,或者直接输出data$categories,就能看到它是完整的分类字符串(编码正确的话会显示Menú,Limpieza,Limpiadores,Pisos,Curadores),其他列也会和你期望的完全对应:
- id=142251
- name=TULI
- promo为空
- categories=完整的分类字符串
- price=$ 73.65
- unit_price=$81.83 x Lt
内容的提问来源于stack exchange,提问作者Julen Badiola Martínez
相关产品推荐
相关产品推荐

