因此,我正在嘗試從「天氣狀況」欄中獲取grep
天氣數據,該列有多個天氣類型的指示器。我正在嘗試grep「+ SN」,「SN」和「-SN」,但難以避免部分匹配。在沒有部分匹配的情況下完全匹配「SN」,「+ SN」或「-SN」
下面就來grepped的可能是什麼列一個例子:
c("-SN", " ", "SN FR", "HZ +SN", "SN", "+SN", " ", "+BC -SN")
Grepping「-SN」是好的,但grepping「+ SN」是棘手的,因爲+是一個正則表達式運算符本身。使用轉義字符使我有以下錯誤:
> grep("\+SN" ,aa) Error: '\+' is an unrecognized escape in character string starting ""\+"
Futhermore,grepping「SN」沒有得到「+ SN」或「-SN」是構成挑戰。正如您所看到的,我無法使用^SN$
或^SN
來排除+或 - 符號,因爲一列中可能有多個指標,而我正在查找的指標可能在前面或在另一個指標後面。 R中是否存在與grep等效的!=
或-v
?你會怎麼想這樣的事情? R中的正則表達式在功能上似乎更受限制。
謝謝。
什麼是你期望的輸出之前? – 2015-03-19 01:03:46
@AvinashRaj我在使用grep()選擇天氣狀況爲「-SN」,「SN」或「+ SN」時的天氣觀測,所以它會出現在子集表達式中,如'df [grep(「 - SN「,df $ col),]'。我只是在grep部分遇到困難。 – ethane 2015-03-19 01:10:42
至於'+',我認爲你需要逃避escape char,即'grep('\\ + SN',aa)',對於普通的'SN',搜索一個以'SN開頭的字符串''或者有一個空格字符後跟'SN':'grep('(^ SN | \\ sSN)',aa)'。看[這裏的例子](http://www.r-fiddle.org/#/fiddle?id=SD2ksmB6&version=1)。 – 2015-03-19 01:11:23