2015-04-15 60 views
1

問題:如何讀取R中的文件開頭的元數據將被忽略的數據文件?從R中的文件讀取數據幀時刪除元數據

在下面的例子文件,我們要開始讀取到該文件的從行結束

1446.60  35785.0 

例摘錄

Axis Energy Elements= 226 

... 

    Etch Time (EtchTime)\s 0.000000  
    Etch Level (EtchLevel)\ 0.000000  
Energy (E) 
eV 
1446.60  35785.0 
1446.80  34955.9 
1447.00  34448.0 
1447.20  33632.6 
1447.40  32905.1 
1447.60  31976.5 

... 

另外,存在尾隨的空間兩欄中的值,我們如何擺脫它們?使用strip.white=T似乎並沒有幫助:

read.table('myFile', sep = '\t', header = F, strip.white = T) 

 V1 V2   V3 V4 
1 1446.6 NA 35785.0000 NA 
2 1446.8 NA 34955.9000 NA 
3 1447.0 NA 34448.0000 NA 
4 1447.2 NA 33632.6000 NA 
5 1447.4 NA 32905.1000 NA 
+3

你有一個'skip'說法。 –

+1

如果元數據的行數未知,則可以先執行'txt < - readLines('myFile'); read.table(text = txt,sep ='\ t',header = FALSE,skip = grep('^ eV',txt))''。 – jbaums

+0

@Pascal明白了,謝謝! – Nyxynyx

回答

1

你可以用pipeawksed從開始編號(Linux)的行讀取。

read.table(pipe("awk '/^\\s*(-?[0-9]+(\\.[0-9]*)?\\s*)+$/ {print $0}' Nyxynyx.txt"), 
     header=FALSE) 
#  V1  V2 
#1 1446.6 35785.0 
#2 1446.8 34955.9 
#3 1447.0 34448.0 
#4 1447.2 33632.6 
#5 1447.4 32905.1 
#6 1447.6 31976.5 

注:Nyxynyx.txt是文件