2016-05-07 47 views
0

我在矢量中有一串字符串,我試圖刪除幾個字符串的" (dblheader)"部分。這裏是我的琴絃的載體:從字符串的矢量中刪除短語

startinglineups$Teams  
[1] "Colorado Rockies"    "San Francisco Giants"   "Kansas City Royals"   "Cleveland Indians"    
[5] "Oakland A's (dblheader)"  "Baltimore Orioles (dblheader)" "Arizona Diamondbacks"   "Atlanta Braves"    

我一直在使用sub(" (dblheader)", "", startinglineups$Teams)gsub嘗試,但他們都不是似乎這樣的伎倆。我猜測前面的空白字符或圓括號存在問題。我認爲搜索確切的短語會解決我的問題,但我錯了。我想可能有一些我需要使用的轉義序列,或者我只是在推翻這一點。

回答

1

您可以使用一個轉義序列(稍後解釋)。但是,由於您正在與字符串進行完全匹配,因此您可以將fixed = TRUE添加到您的sub()調用中。

sub(" (dblheader)", "", startinglineups$Teams, fixed = TRUE) 

這也將是不是因爲它繞過了正則表達式引擎使用正則表達式更快。

否則,正則表達式中的圓括號將用於分組和捕獲,因此需要進行轉義才能直接使用。所以對於正則表達式的使用,你可以這樣做

sub(" \\(dblheader\\)", "", startinglineups$Teams)