首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >blank.lines.skip = TRUE失败,返回read.fwf?

blank.lines.skip = TRUE失败,返回read.fwf?
EN

Stack Overflow用户
提问于 2012-07-23 10:54:23
回答 1查看 1.4K关注 0票数 1

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

代码语言:javascript
复制
> data=read.fwf("test2",head=F,widths=c(3,1,-3,4,-1,4),blank.lines.skip = TRUE)  
> data  

当我运行这段代码时,blank.lines.skip参数被忽略。我仍然在我的输出中得到空行。

该文件为:

代码语言:javascript
复制
x1     F          1890 1962  
x2                1857 1936  
x3                1900 1978  
x4                1902 1994  
x5        F       1878 1939 

末尾还有四行空行。

EN

回答 1

Stack Overflow用户

发布于 2012-07-23 11:43:50

看起来您是对的,blank.lines.skip不适用于read.fwf --必须深入研究代码以找出原因,但是read.fwf在将文件(以及blank.lines.skip指令)传递给read.table之前会对其进行大量处理。但是,事后检测和删除全部为空的行并不太难。

例如:

代码语言:javascript
复制
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确实不够“聪明”,不足以让你在大多数专栏中使用自动检测,而是在(a)特定专栏中覆盖它。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11605909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档