从R中的文本文件中删除特定行

时间:2016-07-05 18:07:26

标签: regex r

我使用sink()将脚本的输出写入.txt文件,但无论出于何种原因,提示也写入了txt文件。我几天前问过一个问题来解决这个问题,但没有答案,所以我在这里从不同的角度来看待它。这是我的脚本生成的txt文件:

> geno(hdr) 
DataFrame with 12 rows and 3 columns
            Number        Type                         Description
       <character> <character>                         <character>
GT               1      String                            Genotype
GQ               1     Integer                    Genotype Quality
DP               1     Integer                          Read Depth
HDP              2     Integer                Haplotype Read Depth
HQ               2     Integer                   Haplotype Quality
...            ...         ...                                 ...
mRNA             .      String                     Overlaping mRNA
rmsk             .      String                  Overlaping Repeats
segDup           .      String Overlaping segmentation duplication
rCov             1       Float                   relative Coverage
cPd              1      String                called Ploidy(level)

> sink()

由于我想要的行是以>开头的行,我想是否有办法打开txt文件并删除那些特定的行。在这种情况下,行> geno(hdr)> sink()将被删除。我不擅长R中的正则表达式,所以我不知道这是如何工作的。任何帮助赞赏。谢谢。

1 个答案:

答案 0 :(得分:1)

你可以试试这个。逐行读取文件,检查行是否以>开头,如果没有,请将其附加到新文件中:

con <- file('test.txt', open = 'r')
while(TRUE) {
    line <- readLines(con, n = 1)
    if(length(line) == 0) break
    else if(!startsWith(line, ">")){
        write(line, file = "newTest.txt", append = TRUE)
    } 
}