从字符串向量中删除一个短语
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)
我在一个向量中有一堆字符串,我正在尝试删除几个字符串的 " (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)