回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个.gz文件,其中包含一个大文本文件。结构如下所示:</p>
<pre><code>propVarQ,0.1
multiplier,2.0
p,1,chr1,3
p,1,locus1,80828536,35.735,0.43562663
p,1,snp,1,80828735,G/A,GGGGGGAG,G,0.9166667
p,1,p,7699,0.09534625
p,1,p,317,0.09534625
p,1,p,6181,0.09534625
p,1,p,6570,0.09534625
p,1,p,2370,0.09534625
</code></pre>
<p>重复大约1000次。我需要在R中解析它(虽然python也是一个选项,但我对R更熟悉),这样它就只为第三个值为“snp”的行返回第二个值(在本例中是1),第八个值(在本例中是G)(在本例中是第5行)。在这个例子中,我期望的结果是:</p>
<pre><code>1 G
</code></pre>
<p>到目前为止,我得出的结论如下:</p>
<pre><code>maf <- file("file.gz")
maflist <- strsplit(readLines(maf), ",")
close(maf)
maflist[maflist[,3]=="snp",]
</code></pre>
<p>但是我得到了不正确的维数。我在读取文件时遇到了问题,因为每行中的列数不相等,这就是我最终使用<code>strsplit</code>的原因。如果有更好的办法,我愿意。你知道吗</p>