从字符串向量中删除一个短语

Remove a phrase from a vector of strings

我在一个向量中有一堆字符串,我正在尝试删除几个字符串的 " (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 但它们似乎都不起作用。我猜前面的空白字符或括号有问题。我认为搜索确切的短语可以解决我的问题,但我错了。我在想我可能需要使用一些转义序列,或者我只是想多了。

您可以使用一个转义序列(稍后解释)。但是,由于您正在对字符串进行精确匹配,因此您可以将 fixed = TRUE 添加到 sub() 调用中。

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

这也比使用正则表达式更快,因为它绕过了正则表达式引擎。

否则,正则表达式中的括号用于分组和捕获,因此需要转义才能按字面意义使用。所以对于正则表达式的使用,你可以完成

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