r - 使用 data.table::fread 读取压缩文件时测试行
问题描述
我正在编写一个函数来解析特定于软件的输出(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 列中的行。
现在我知道如何实现它的唯一方法是调用 shell 命令:
fread(cmd=paste("zcat -f ", "path/to/file.tsv" ," | awk '$4 || $5'"), stringsAsFactors=FALSE)
我有两个问题:
fread
除了调用 shell 命令之外,还有其他方法可以在读取时测试行吗?就像可以在 Unix 和 Windows 上运行的内置函数一样。- 不调用
awk
命令zcat
对压缩文件不起作用,有什么原因吗?cmd
没有参数它工作得很好。
谢谢你的帮助
解决方案
推荐阅读
- amazon-web-services - 使用 CloudFormation 创建规则时,AWS IoT parse_time 函数不起作用
- python - 仅退出一个单元格并继续运行其余单元格
- ruby-on-rails - 为什么我收到未初始化的常量 Api::SessionsController: 错误?
- java - 将 Java FX 表单数据添加到 ArrayList
- reactjs - 在按钮单击时反应切换类名
- sql - SQL查询以获取两个大范围列表之间的重叠条目
- java - C#.NET 是否具有与 Java 的 JAR 文件密封包功能等效的功能?
- sql - 如何使用 ST_Touches 获取触摸几何的相交长度
- shell - 如何在 zsh 脚本中编写复杂的 psql 命令?
- c# - 使用 IronWebScraper 时如果一个 URL 返回 404,如何继续抓取下一个 URL