MAP*_*APK 6 r bioinformatics bigdata
我需要在 R 中读取至少 10 GB 大小的文件。为了限制内存使用,我只想读取那些匹配模式的行。例如,在mytext.tsv下面的文本文件中,我想从将成为标题的想要的行中读取。然后读取匹配coding和synonymousfrom的行col2,即patterns。
patterns <- c("coding", "synonymous")
mytext.tsv:
## lines unwanted
## lines unwanted1
## lines unwanted2
## lines unwanted3
wanted col1 col2
aaa variant1 coding
jhjh variant2 non-coding
ggg variant3 synonymous
fgg variant4 coding
gdg variant6 missense
Run Code Online (Sandbox Code Playgroud)
我预期的数据框应该是:
wanted col1 col2
aaa variant1 coding
ggg variant3 synonymous
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用连接和扫描然后循环遍历每个模式,但是在 R 中有什么有效的方法可以做到这一点吗?
将data.table与cmd选项和grep一起使用(未测试):
library(data.table)
fread(cmd = "grep 'coding\|synonymous' mytext.tsv",
col.names = c("wanted", "col1", "col2"))
Run Code Online (Sandbox Code Playgroud)
笔记:
findstr命令。