2012-07-23 62 views
1

我的文件末尾有四行空白行。blank.lines.skip = TRUE失敗,並顯示read.fwf?

> 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 

和四個空行。

+0

此外,請注意,您問這個問題的方式對於我們這些想要幫助的人來說可能是相當令人沮喪的。我們沒有您想要閱讀的文件,因此我們提供的任何幫助僅僅是猜測。這就是爲什麼我們強烈建議你提出你的問題[reproducible](http://stackoverflow.com/q/5963269/324364)。 – joran 2012-07-23 03:18:11

+0

我很欣賞你試圖澄清你的問題。但是,無論發生什麼問題,您的特定文件的存儲方式都可能會有所不同,當您將內容複製到問題中時,這些內容會丟失。我們將需要文件本身。一個保管箱鏈接,也許?我們需要能夠複製你在做什麼_exactly_。 – joran 2012-07-23 03:29:12

+0

你介意看下面的答案嗎? – 2012-07-23 04:32:44

回答

5

它看起來像你說得對,blank.lines.skip並不適用於read.fwf - 必須在代碼挖掘找出原因,但(與blank.lines.skip指令一起)傳遞之前,read.fwf做文件的顯著處理到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對於您在大多數列上使用自動檢測,但對(a)特定列進行覆蓋確實不夠「聰明」。

相關問題