0

次のようなデータ ファイル (290 行 2 列の行列) があります。

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

SL と WR のすべてのデータを削除したいと思います (例として)。だから私は持っているだけです:

# RIR1
ABABABABABABABABAA
ABABABABABABABABBA
# BR2
ABABABABABABABBABA
ABBABABABABABABABA

何かを開始または含む1行を削除する方法は知っていますが、3行連続で行う方法はわかりません。

これは私が1行に使用するものです:

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 に答える