如何R中使用的fread时有隔板之间没有空格处理数据(How to handle data with

2019-09-30 17:26发布

我读了大量.txt文件(> 1GB)为R通过fread 。 我读从直接在文件.zip档案,通过bash命令:

base = fread('unzip -p Folder.zip File.txt', sep = '|', header = FALSE, 
stringsAsFactors = FALSE, na.strings="", quote = "", col.names = col_namesMain)

该文本文件通过分隔条目| 因此,一个典型的行可能看起来像:

RRX|||02020||333293||||12123

不过,也有很多地方空项是由隔板与他们之间没有空格,如表示|| 在上面的例子线。

当使用fread ,这些相邻的分隔通常在读完全,使得上述线返回以下条目:

RRX, ||02020|, 333293|||, 12123

当它应该读为:

RRX, NA, NA, 02020, NA, 333293, NA, NA, NA, 12123

我已经尝试使用read.table用选项skipNul = TRUE ,这完美的作品。 然而,似乎没有类似的任何选项skipNulfread 。 我更喜欢使用freadread.table如果可能的话,因为我有几个非常大的文件。 尽管我的搜索,我还没有碰到过这个问题的讨论。 任何帮助非常赞赏。

Answer 1:

我一直在使用与函数read.table选项skipNul = TRUE尝试,这完美的作品。 然而,似乎没有类似skipNul为FREAD任何选项。

此问题已修复在开发中1.12.3在2019年4月15日(见新闻 ):

  1. FREAD()现在会跳过内嵌的NULL(\ 0),#3400。 感谢马库斯戴维与实例报告,以及罗伊楼层初始PR。


文章来源: How to handle data with no space between separators when using fread in R