Я пишу функцию для анализа выходных данных с указанием 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
.
Спасибо за вашу помощь