Vas*_*y A 17 r data.table
(问题不再相关,因为data.table
25-NOV-2016的新版本- 见下面接受的答案)
所以,我有一张桌子,中间有一些空行.当我试图打开它时fread
,它会停下来说Stopped reading at empty line 10006, but text exists afterwards (discarded)
.有没有办法在不更改数据文件的情况下避免这种情况?
2016年11月25日发布的data.table版本1.9.8有一个blank.lines.skip
跳过空白行的新选项.
text <- "1,a\n\n2,b\n3,c\n4,a\n\n5,b\n\n6,c"
library(data.table)
fread(text)
## V1 V2
## 1: 2 b
## 2: 3 c
## 3: 4 a
## Warning message:
## In fread("1,a\n\n2,b\n3,c\n4,a\n\n5,b\n\n6,c") :
## Stopped reading at empty line 6 but text exists afterwards (discarded): 5,b
fread(text, blank.lines.skip=TRUE)
## V1 V2
## 1: 1 a
## 2: 2 b
## 3: 3 c
## 4: 4 a
## 5: 5 b
## 6: 6 c
Run Code Online (Sandbox Code Playgroud)
您可以使用Windows findstr
命令摆脱空行.
示例文件"Data.txt".
1,a
2,b
3,c
4,a
5,b
6,c
Run Code Online (Sandbox Code Playgroud)
重现您的错误.
> dt <- fread("Data.txt")
Warning message:
In fread("Data.txt") :
Stopped reading at empty line 6 of file, but text exists afterwards (discarded): 5,b
Run Code Online (Sandbox Code Playgroud)
但findstr
直接使用Windows时可以正常工作fread
.
> require(data.table)
> dt <- fread('findstr "." Data.txt')
# > dt
# V1 V2
# 1: 1 a
# 2: 2 b
# 3: 3 c
# 4: 4 a
# 5: 5 b
# 6: 6 c
Run Code Online (Sandbox Code Playgroud)