2012-10-23 58 views
2

我需要在R中處理一些FORTRAN輸出文件。例如,我需要從輸出文件讀取20行並忽略空格。然後將它們轉換爲矢量或矩陣。我想知道是否有更好的方法來忽略空格並保留值?謝謝! 這裏是我的Out.txt文件(所有我需要的是最後的四列):將空格(Tab)分隔的文本文件讀入矩陣(向量)

CNC HORIZON  COMPARTMENT  TOTAL  ADSORBED DISSOLVED GAS CONC. 
CNC        (MG/KG) (MG/KG) (MG/L)  (MG/L) 
CNC -------------------------------------------------------------------------- 
CNC 
CNC 
CNC 1   1    0.4062  0.3737  1.210  0.2419E-05 
CNC 1   2    0.4942  0.4547  1.472  0.2943E-05 
CNC 1   3    0.4930  0.4536  1.468  0.2936E-05 
CNC 1   4    0.4812  0.4427  1.433  0.2865E-05 
CNC 1   5    0.4682  0.4307  1.394  0.2788E-05 
CNC 1   6    0.4550  0.4186  1.355  0.2710E-05 
CNC 1   7    0.4418  0.4065  1.315  0.2631E-05 
CNC 1   8    0.4286  0.3944  1.276  0.2552E-05 
CNC 1   9    0.4154  0.3822  1.237  0.2474E-05 
CNC 1   10    0.4022  0.3701  1.198  0.2395E-05 

下面是我的做法:

TOT={} 
file_out <- file(paste(pth,'/Out.txt', sep="")) 
b=readLines(file_out) 
dd=as.numeric(ldply(strsplit(b[88334]," "))) # I have to adjust the amount of spaces in 
               # order to separate numbers out 
TOT[1]=dd[10]         # It is not always 10 
+0

請告訴我們Out.txt或至少Out.txt –

+0

的例子Out.txt已添加 –

回答

1

如果你不介意重新貼標籤的列,這是一個非常簡單的read.table練習。

b <- read.table("path/to/Out.txt",skip=5) 

    V1 V2 V3  V4  V5 V6  V7 
1 CNC 1 1 0.4062 0.3737 1.210 2.419e-06 
2 CNC 1 2 0.4942 0.4547 1.472 2.943e-06 
3 CNC 1 3 0.4930 0.4536 1.468 2.936e-06 
4 CNC 1 4 0.4812 0.4427 1.433 2.865e-06 
5 CNC 1 5 0.4682 0.4307 1.394 2.788e-06 
6 CNC 1 6 0.4550 0.4186 1.355 2.710e-06 
7 CNC 1 7 0.4418 0.4065 1.315 2.631e-06 
8 CNC 1 8 0.4286 0.3944 1.276 2.552e-06 
9 CNC 1 9 0.4154 0.3822 1.237 2.474e-06 
10 CNC 1 10 0.4022 0.3701 1.198 2.395e-06 
+1

即使你不重新標記列,可以編寫一個函數來解析出列然後將其傳遞給read.table – Arcymag

+0

甚至只需使用col.names參數將其寫入read.table即可。 –

+0

感謝您的幫助 –

相關問題