1

ファイルの最後に 4 つの空白行があります。

> 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 

最後に 4 つの空白行があります。

4

1 に答える 1

5

blank.lines.skipに当てはまらないのは正しいようですread.fwf-理由を理解するためにコードを掘り下げる必要がありますが、ファイルを(ディレクティブread.fwfとともに)に渡す前にファイルの重要な処理を行います。ただし、事後にすべて空白の行を検出して削除することはそれほど難しくありません。blank.lines.skipread.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)特定の列に対してそれをオーバーライドします。

于 2012-07-23T03:43:50.267 に答える