2011-12-28 10 views
5

私は別の解析プログラムから生成されたファイルの読み込みを自動化しようとしています。read.tableの列数を指定できますか?

通常、標準出力はスペースで区切られた6列で、末尾に改行が入ります。 これは "read.table"内の "strip.white = TRUE"を使うだけでうまく読み込みます。

しかし、パラメータが定数として固定されていると、b/c行に注釈が追加されます。 「フラッシュ= TRUE」を追加
は私がこれら時折コメントをスキップし、中にすべてのものを読むことができます。

私は何をしたいことだけ与えられたファイルに一度発生する可能性がありますこれらのコメントは、 は次のように追加されていています7番目の列。

この7番目の列に対応する列数またはその他の方法を指定できる読み込み方法はありますか?

columns_1&2 column_3 column_4 column_6 column_6 column_7  
84:S 0:dorm 1.0000000 0.11E-005 0.9999979 1.0000021       
85:p N:veg 1.0000000 0.0000000 1.0000000 1.0000000 Fixed    
86:p 0:dorm 0.260E-08 0.237E-05 -0.03E-05 0.46E-005 

答えて

9

それがある場合は、あなたのすべての列がとしてきちんとすなわちリンクされている例では、これらの(ように配置されている場合は、次の

データのスニペットは、データは次のようになりhere

を見つけることができます"固定幅ファイル")、これはread.fwf()するジョブである:

df <- read.fwf(file = "http://dl.dropbox.com/u/54791824/SO_data_frag.txt", 
       widths = c(8, 7, 29, 15, 16, 16,1000)) 

head(df,4) 
     V1  V2 V3   V4  V5  V6   V7 
1 82:S 0:dorm 1 1.625420e-06 0.9999968 1.000003      
2 83:S 0:dorm 1 1.083245e-06 0.9999979 1.000002      
3 84:S 0:dorm 1 1.081771e-06 0.9999979 1.000002      
4 85:p N:veg 1 0.000000e+00 1.0000000 1.000000 Fixed 

EDIT:あるいは、Jとしてオランはコメントで指摘し、あなたはfill=TRUEオプションでread.table()を使用することができます。

df2 <- read.table(file = "http://dl.dropbox.com/u/54791824/SO_data_frag.txt", 
        fill = TRUE, 
        col.names=paste("column", 1:7, sep="_") 
+3

@NBrouwerは、私はあなたにも= true'をを記入し、直接 'col.names'を使用して列名を指定して'設定できると思います。 – joran

+0

@joran - 他の/より良いオプションについて言及してくれてありがとう。私は上にそれを強調しました。 –

関連する問題