blank.lines.skip = TRUE失败read.fwf?(blank.lines.ski

2019-10-17 01:34发布

有四个空行我的文件的末尾。

> data=read.fwf("test2",head=F,widths=c(3,1,-3,4,-1,4),blank.lines.skip = TRUE)  
> data  

当我运行该代码时,blank.lines.skip参数将被忽略。 我仍然可以在我的输出空行。

该文件是:

x1     F          1890 1962  
x2                1857 1936  
x3                1900 1978  
x4                1902 1994  
x5        F       1878 1939 

和四个空行末。

Answer 1:

它看起来像你说得对, blank.lines.skip并不适用于read.fwf -必须在代码挖掘找出原因,但read.fwf传递给它(连同之前做的文件显著处理在blank.lines.skip指令)到read.table 。 然而,这不是太难以检测和事后删除所有空行。

例如:

cat("abc","def","ghi","","","",sep="\n",file="test3.dat")
read.table("test3.dat")  ## blank lines skipped (by default)
(x <- read.fwf("test3.dat",widths=c(1,1,1),blank.lines.skip=TRUE))
##     V1   V2   V3
## 1    a    b    c
## 2    d    e    f
## 3    g    h    i
## 4 <NA> <NA> <NA>
## 5 <NA> <NA> <NA>
## 6 <NA> <NA> <NA>
all_NA <- apply(x,1,function(z) all(is.na(z)))
x[!all_NA,]

为了回答您的其他问题(你张贴作为一个答案,然后由版主删除;你通常应该通过修改原来的职位添加到您的问题必要的修改,或通过评论的问题,如果有必要,而不是发布一个答案) : colClasses的确不是“聪明”足够你使用大多数列自动检测,但覆盖它(一)特定列(S)。



文章来源: blank.lines.skip = TRUE fails with read.fwf?