0
ある単語が後に続く単語を抽出しようとしています。この例では、例えば、私は、次の単語を抽出しようとしています「AB」文章から単語を抽出するR
x = c("So much fun - AB22148",
"AC33648 does whatever",
"I know -AB11025 Failed",
"Nothing stalled - AB16228",
"Unable to do fdS2083D - Ab26604")
Num = character(0)
for (i in 1:length(x)) {
y = unlist(strsplit(x[i]," "))
Num[i] = grep("AB",y, perl = T, value = T, ignore.case = T)
}
あり問題のカップル(あなたはおそらく言うことができるよう)です。1.「AB」は存在しない場合、私はエラーを取得しますNumはゼロの長さを取ることができないからです。 2.私がそれを克服すると(ACをABに置き換えるなどして)、5番目のエントリは「Ab26604」ではなく「unable」を返します。
私が探しているものは次のとおりです。1.ループなしで実行できるか(おそらくapply関数の1つを使用して)2. 3番目と5番目のケースでどのようにシナリオを説明しますか?すべての助けを
Num (current output)
[1] "AB22148" " " "-AB11025" "AB16228" "Unable"
Num (required output)
[1] "AB22148" " " "AB11025" "AB16228" "Ab26604"
感謝を[私は(私は次のステップで、このの世話をすることができますが、それは同時に行うことができるかどうか迷った)」-'signを削除するようになります]。ほんとうにありがとう。親切にあなたは追加の説明が必要なら、私に知らせて
あなたは次のように行うことができます
'GSUB( '(I)\\ B(AB \\ S +)|?'、 '\\ 1'、X、perlの= TRUE)' – rawr
あなたは答えを投稿して説明しなきゃ@rawr魔術師。特に、最後に '| .'があります。 –