2016-05-04 2 views
0

У меня есть выходной файл газового хроматографа как .txt с переменной длиной заголовка. Как я могу прочитать данные в R без ручного выбора/удаления заголовка? Файл выглядит так, как показано ниже. До сих пор я пробовал разные вещи (grep и т. Д.), Чтобы найти положение «[Chromatogram (Ch1)]» или «R.Time (min) Intensity» в файле, а затем только начать чтение оттуда. Однако успеха нет. Я был бы очень благодарен за некоторые советы о том, как это сделать, а также о том, как пропустить последние две строки.Импортируйте данные в R и пропустите до ключевого слова

С наилучшими пожеланиями, Madelyn


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, спасибо за быстрый ответ :) Это отрезать заголовок, но и часть данных. Я также получаю предупреждение: «Предупреждающее сообщение: В 1: lengthOfHeaders: Числовое выражение имеет 2 элемента: только первый использованный« – Madelyn

+0

Я изменил код. Не знаете, как выглядят файлы. Возможно, у вас несколько строк, содержащих «R.Time»? – Psidom

+0

Я проверил, и у меня есть еще одно событие. Я пытался использовать несколько уникальных уникальных ключевых слов, но не смог заставить их работать. Вот пример файла, если вы хотите посмотреть: https://polybox.ethz.ch/index.php/s/4H7FD65ps0V1ZC3 – Madelyn

Смежные вопросы