【发布时间】:2016-07-18 15:35:43
【问题描述】:
前几天我发布了一个问题,并意识到我没有很好地表达我的问题。所以我把它清理了,让它变得更简单了。
"@realdonaldtrump","19301000","19300609","Jody"
"@realdonaldtrump","1350700000","1350725479","Bobby
Fischer"
"@realdonaldtrump","870440000","870442502","Lenny"
Phone</a>"
"@realdonaldtrump","4831200000","4831194209","Tom"
"@realdonaldtrump","4.397e+09","4397021841","Dave"
"@realdonaldtrump", "12345678","9012345678", "Zee
G
Zeek"
我的 CSV 数据存在一些问题。我需要清理它,这样我才能用 R 读取它。
我期望返回 6 个条目,Jody、Bobby Fischer、Lenny、Tom 和 Dave、Zee G Zeek 各一个。
但是,那个讨厌的“电话”神器把事情搞砸了。
所以我的第一个想法是 gsub 出来。问题是,该工件因数百万个条目而异。有时它的电话“。有时它的 Eck”。有时是 Twitter"。各种长度。各种格式。
另一个问题是,在“Bobby Fischer”之类的情况下,上面的一行可能在一个重要字段的中间有一个 \r\n。我不想失去这些台词。
是否存在一种明确的方法来清除这些有问题的线条,同时又不会破坏恰好向下延伸的有益线条?
【问题讨论】:
-
您的工件是否包含逗号?如果没有,您可以使用 sed 或 awk 或其他命令行编辑器预处理文件,并在某处删除所有没有(或两个或三个)逗号的行。 (或者名称中实际上有换行符?)
-
您的数据集有多大,即通过
readLines()将整个数据同时吸入内存是否可行,或者我们是否应该向您提供有关命令行工具(grep、sed、awk、cut)的建议) 正如@Roland 所建议的那样? -
这是一个大文件 (500 MB),但可以在我的设置中一次全部读入内存。命令行编辑器很好(如果有帮助,可以在 Windows 上工作)。该文件有数百万行,但我发现的所有这些工件都不包含逗号。但是,由于嵌入换行符而只是多行的“好”行确实有逗号。
标签: r csv data-processing data-cleaning