Pen*_*eng 1 r blank-line read.fwf
我的文件末尾有四个空白行.
> data=read.fwf("test2",head=F,widths=c(3,1,-3,4,-1,4),blank.lines.skip = TRUE)
> data
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,将忽略blank.lines.skip参数.我的输出中仍然有空行.
该文件是:
x1 F 1890 1962
x2 1857 1936
x3 1900 1978
x4 1902 1994
x5 F 1878 1939
Run Code Online (Sandbox Code Playgroud)
最后有四个空白行.
看起来你是对的,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,]
Run Code Online (Sandbox Code Playgroud)
要回答您的其他问题(您将其作为答案发布,然后由主持人删除;您通常应该通过编辑原始帖子或通过在必要时评论问题而不是发布答案来对您的问题添加必要的修改) :colClasses确实不是"聪明",你可以在大多数列上使用自动检测,但是为(a)特定列覆盖它.