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.如果我克服了這個問題(例如通過用AB代替AC),那麼第5個條目給我'不能'而不是'Ab26604'。
我在尋找的是:1.可以在沒有循環的情況下完成(可能使用其中一個應用函數)2.如何解釋第三和第五種情況下的情況? [我會想刪除「-'sign(在下一步我可以照顧這一點,但不知道是否可以同時進行)
Num (current output)
[1] "AB22148" " " "-AB11025" "AB16228" "Unable"
Num (required output)
[1] "AB22148" " " "AB11025" "AB16228" "Ab26604"
感謝所有幫助。對此,我真的非常感激。請讓我知道如果你需要進一步澄清
'GSUB( '(我)\\ B(AB \\ S +)|?', '\\ 1',X,PERL = TRUE)' – rawr
@rawr你必須張貼的答案和解釋巫術。特別是最後的'| .'。 –