如果第一行包含特定字符,如何删除行中的3行?
问题描述:
我有一个数据文件(其与290线和2列的矩阵)所示:如果第一行包含特定字符,如何删除行中的3行?
# 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",]
感谢。
答
您可以使用正则表达式来删除不需要的部分。
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
什么是'old'请提供可重复的例子 – juba 2013-03-15 08:50:08
它的一个类和结构? 'matrix'和结构是'chr [1:290,1:2]“96”“#”“1”...' – mahmood 2013-03-15 09:03:29