【发布时间】:2021-02-26 14:47:46
【问题描述】:
当我使用 R data.table(fread) 读取 dat 文件 (3GB) 时出现问题:
在第 3169933 行提前停止。预期有 136 个字段,但找到了 138 个。考虑 fill=TRUE 和 comment.char=。第一个丢弃的非空行:
我的代码:
library(data.table)
file_path = 'data.dat' # 3GB
fread(file_path,fill=TRUE)
问题是我的文件有大约 500 万行。详细:
- 从第 1 行到第 3169933 行共有 136 列
- 从第 3169933 行到第 5000000 行共有 138 列
fread() 由于此错误,仅将我的文件读取到第 3169933 行。 fill = TRUE 在这种情况下没有帮助。谁能帮帮我?
R 版本:3.6.3 data.table 版本:1.13.2
在这种情况下有关 fill=TRUE 的注意事项:
[案例 1- 不是我的案例] 如果我的文件的第 1 部分(50% 行)有 138 列,第 2 部分有 136 列,那么 fill=TRUE 会有所帮助(它将用 NA 填充第 2 部分中的两列)
[案例 2- 我的案例] 如果我的文件的第 1 部分(50% 行)有 136 列,第 2 部分有 138 列,那么在这种情况下填充 =TRUE 将无济于事。
【问题讨论】:
-
平台? R 版本?
-
stackoverflow.com/questions/44464441/…分别导入两块数据后。或者使用 awk 将“,NA,NA”附加到前 3169933 行。
-
什么意思是“fill = TRUE 没有帮助” - 如果您使用
fill=TRUE会出现什么问题? -
@VasilyA :当我设置 fill=TRUE 时,错误仍然出现:在第 316993 行提前停止,预期 136 个字段,但找到 138 个。
-
@Severin Pappadeux:我使用 R studio,R 版本:3.6.3,data.table 版本:1.13.2
标签: r data.table fread