在 R 中使用 fread 时如何处理分隔符之间没有 space 的数据
How to handle data with no space between separators when using fread in R
我正在通过 fread
将一个大的 .txt
文件 (>1GB) 读入 R
。我正在通过 bash 命令直接从 .zip
存档读取文件:
base = fread('unzip -p Folder.zip File.txt', sep = '|', header = FALSE,
stringsAsFactors = FALSE, na.strings="", quote = "", col.names = col_namesMain)
文本文件通过 |
分隔条目,因此典型的行可能如下所示:
RRX|||02020||333293||||12123
但是,在许多地方,空条目由分隔符表示,它们之间没有 space,例如||
在上面的示例行中。
当使用 fread
时,这些相邻的分隔符通常会一起读入,因此上面的行 returns 以下条目:
RRX, ||02020|, 333293|||, 12123
何时应读入:
RRX, NA, NA, 02020, NA, 333293, NA, NA, NA, 12123
我试过使用 read.table
和 skipNul = TRUE
选项,效果很好。但是,fread
似乎没有任何类似于 skipNul
的选项。如果可能的话,我更愿意使用 fread
而不是 read.table
,因为我有几个非常大的文件。尽管我进行了搜索,但我还没有对这个问题进行太多讨论。非常感谢任何帮助。
I have tried using read.table with the option skipNul = TRUE, and this
works perfectly. However, there doesn't seem to be any option similar
to skipNul for fread.
这已于 2019 年 4 月 15 日在 dev 1.12.3 中修复(参见 NEWS):
- fread() now skips embedded NUL ([=11=]), #3400. Thanks to Marcus Davy for reporting with examples, and Roy Storey for the initial PR.
我正在通过 fread
将一个大的 .txt
文件 (>1GB) 读入 R
。我正在通过 bash 命令直接从 .zip
存档读取文件:
base = fread('unzip -p Folder.zip File.txt', sep = '|', header = FALSE,
stringsAsFactors = FALSE, na.strings="", quote = "", col.names = col_namesMain)
文本文件通过 |
分隔条目,因此典型的行可能如下所示:
RRX|||02020||333293||||12123
但是,在许多地方,空条目由分隔符表示,它们之间没有 space,例如||
在上面的示例行中。
当使用 fread
时,这些相邻的分隔符通常会一起读入,因此上面的行 returns 以下条目:
RRX, ||02020|, 333293|||, 12123
何时应读入:
RRX, NA, NA, 02020, NA, 333293, NA, NA, NA, 12123
我试过使用 read.table
和 skipNul = TRUE
选项,效果很好。但是,fread
似乎没有任何类似于 skipNul
的选项。如果可能的话,我更愿意使用 fread
而不是 read.table
,因为我有几个非常大的文件。尽管我进行了搜索,但我还没有对这个问题进行太多讨论。非常感谢任何帮助。
I have tried using read.table with the option skipNul = TRUE, and this works perfectly. However, there doesn't seem to be any option similar to skipNul for fread.
这已于 2019 年 4 月 15 日在 dev 1.12.3 中修复(参见 NEWS):
- fread() now skips embedded NUL ([=11=]), #3400. Thanks to Marcus Davy for reporting with examples, and Roy Storey for the initial PR.