2016-05-04 50 views
0

我有一個氣體色譜儀的輸出文件,其頭文件長度變化爲.txt。如何在不手動選擇/刪除標題的情況下將數據讀入R?該文件如下所示。 到目前爲止,我嘗試了不同的東西(grep等)在文件中找到「[Chromatogram(Ch1)]」或「R.Time(min)Intensity」的位置,然後才從這裏開始讀入。雖然沒有成功。 我很想知道如何做到這一點,以及如何跳過最後兩行。將數據導入到R中並跳過直到關鍵字

最好的問候, 瑪德琳


Header 
Header 
... 
(differing in length between files) 
... 
Header 
Header 
[Chromatogram (Ch1)] 
Interval(msec) 40 
of Points 4500 
Start Time(min) 0.000 
End Time(min) 2.999 
R.Time (min) Intensity 
0.00000 -320 
0.00067 -320 
0.00133 -320 
0.00200 -320 
0.00267 -320 
0.00333 -321 
0.00400 -321 
0.00467 -321 
... 
2.99800 363 
2.99867 362 
2.99933 360 
[Fraction Collection Report] 
# of Fractions 0 

回答

0

一個可能的解決方案是,你第一次將文件不是篩選出使用grepl標題中讀取。例如:

lines <- readLines(input.txt) 
lengthOfHeaders <- max(which(sapply(lines, function(line) grepl("R.Time", line))) - 1) 
input <- lines[-(1:lengthOfHeaders)] 
+0

嗨Psidom,感謝您的快速回復:) 這確實切斷了標題,但也是數據的一部分。我也收到警告說 「警告信息: In 1:lengthOfHeaders: 數值表達式有2個元素:只有第一個用」 – Madelyn

+0

我修改了代碼。不知道你的文件實際上是什麼樣子。你可能有多行包含「R.Time」的行? – Psidom

+0

我查過了,我確實有另一次發生。我試圖使用幾個不同的關鍵字,但它們並沒有設法使其起作用。這裏有一個示例文件,如果你想看看: https://polybox.ethz.ch/index.php/s/4H7FD65ps0V1ZC3 – Madelyn