Тестовые строки при чтении сжатого файла с помощью data.table :: fread - PullRequest
0 голосов
/ 06 мая 2020

Я пишу функцию для анализа выходных данных с указанием c в программное обеспечение (bismark stranded_CpG_report):

21      13      +       0       0       CG      CGA
21      14      -       0       0       CG      CGA
21      100     +       0       0       CG      CGT
21      101     -       0       1       CG      CGC
21      150     +       2       0       CG      CGG

Поскольку эти файлы огромны, мне нужно отфильтровать строки с 0 в 4-й и 5-й столбцы.

Теперь единственный способ, которым я знаю, как этого добиться, - это вызвать команду оболочки:

fread(cmd=paste("zcat -f ", "path/to/file.tsv" ," | awk '$4 || $5'"), stringsAsFactors=FALSE)

У меня два вопроса:

  • Есть ли другой способ проверить строки при чтении с помощью fread, чем вызов команд оболочки? Как и встроенные функции, которые будут работать как с Unix, так и Windows.
  • Вызов команды awk без zcat не работает со сжатым файлом, есть ли причина, почему? Он хорошо работал без параметра cmd.

Спасибо за вашу помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...