我有一个像这样的csv文件:
id,name,value
1,peter,5
2,peter\,paul,3
如何阅读此文件并告诉R "\,"
未指明新列,仅","
。
我必须添加该文件有400mb。
由于
答案 0 :(得分:2)
您可以使用readLines()
将文件读入内存,然后对其进行预处理。如果您愿意将非独立逗号转换为其他内容,则可以执行以下操作:
> read.csv(text = gsub("\\\\,", "-", readLines("dat.csv")))
id name value
1 1 peter 5
2 2 peter-paul 3
另一种选择是利用data.table中的fread
函数可以执行系统命令作为其第一个参数。然后你可以在读取之前对文件执行类似sed
操作的操作(可能更快或更快):
> data.table::fread("sed -e 's/\\\\\\,/-/g' dat.csv")
id name value
1: 1 peter 5
2: 2 peter-paul 3
您随时可以使用gsub()
将临时-
分隔符转换回逗号。