0

我有一个数据文件(它是一个有 290 行和 2 列的矩阵),如下所示:

# RIR1
ABABABABABABABABAA
ABABABABABABABABBA
# WR
ABABABABABABABABAB
BABABBABABABABABAA
# BR2
ABABABABABABABBABA
ABBABABABABABABABA
# SL
AAABABABABABABBABA
AAABBABABABABABABA

我想删除所有用于 SL 和 WR 的数据(例如)。所以我将只有:

# RIR1
ABABABABABABABABAA
ABABABABABABABABBA
# BR2
ABABABABABABABBABA
ABBABABABABABABABA

我知道如何删除一行开始或包含某些内容,但不知道如何处理一行中的 3 行。

这就是我用于一行的内容:

old<-old[!substr(old[1,],1,5)=="# BR2",]
old<-old[!substr(old[1,],1,6)=="# RIR1",]

提前致谢。

4

1 回答 1

1

您可以使用正则表达式来删除不需要的部分。

txt <- '# RIR1
ABABABABABABABABAA
ABABABABABABABABBA
# WR
ABABABABABABABABAB
BABABBABABABABABAA
# BR2
ABABABABABABABBABA
ABBABABABABABABABA
# SL
AAABABABABABABBABA
AAABBABABABABABABA'

然后删除部分供WR您使用gsub,如下所示。(注:cat命令仅用于打印结果

cat(gsub('(.*)(# WR.*?)(#.*)', '\\1\\3', txt))

输出将是

# RIR1
ABABABABABABABABAA
ABABABABABABABABBA
# BR2
ABABABABABABABBABA
ABBABABABABABABABA
# SL
AAABABABABABABBABA
AAABBABABABABABABA
于 2013-03-15T08:59:47.693 回答