只需要grepl
的一些幫助,它就在我的腦海裏!R grepl變量比較
我有兩個變量:
str1<-"AAV.L"
str2<-"AAV2.L"
而我想要做的是檢查是否str2
是str1
擴展(這是在這種情況下)。基本上這裏str2
有它的名字一個額外"2"
..
理想的解決辦法是這樣的:
grepl(str1,paste0(str2,...))
但我不知道要佔str1
的.
。變量的長度不一樣,所以我不能檢查str1
的前3個字符是否存在於str2
中。
任何人有任何想法?
謝謝!
編輯 - 澄清..
基本上是由我的意思是,如果一個變量包含完全相同的字母,更多的「延伸」,以相同的順序。所以上面的例子AAV.L
和AAV2.L
會匹配,因爲它包含AAV..L
。但它不一定是這樣,它應該匹配REWR
與REWRLE
以及含義REWR..
。
所以c("AAV.LE", "BAAV.L","AABV.L","AAV..L","ABCAV.L")
,沒有人會匹配。如果我把一個規則來進行比賽拖入純英文這將是:
是否str2
開始與str1
或是否與str1
任何子集str2
啓動,並與其他子集結束?
我已經看了一下agrep
,但它匹配得太不準確。例如AAV.L
和AAV2.L
匹配哪個好,但是ADD
和APUAD
也是這樣做的,這是不正確的!我知道我可以指定max.distance
,但一些字符串可能是ADD
和ADDDDDDDDD
,這將使設置此值不合情理。
讓我知道這是否有幫助。
你能更準確地反映這個問題呢?你究竟如何確定一個字符串是否是「另一個字符串的擴展」? –
另外,你是否必須使用'grepl'?根據你對我上次評論的回答,我認爲不使用正則表達式可能會更容易。 –
-1並投票結束:你沒有提供足夠的例子或解釋來唯一確定你想要的。 'c(「AAV.LE」,「BAAV.L」,「AABV.L」,「AAV..L」,「ABCAV.L」)中的內容應該匹配嗎?你可能想看看'agrep'。 –