2016-05-07 2 views
0

У меня есть группа строк в векторе, и я пытаюсь удалить часть из нескольких строк. Вот мой вектор строк:Удалить фразу из вектора строк

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, но ни один из них, казалось, сделать трюк. Я предполагаю, что есть проблема с символом пробела впереди или скобками. Я думал, что поиск точной фразы решит мою проблему, но я ошибаюсь. Я думаю, что может быть какая-то escape-последовательность, которую мне нужно использовать, или я просто переоцениваю это.

ответ

1

Существует escape-последовательность, которую вы можете использовать (объясняется позже). Однако, поскольку вы выполняете точное совпадение со строкой, вы можете просто добавить fixed = TRUE к вашему звонку sub().

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

Это также будет быстрее, чем использование регулярного выражения, поскольку оно обходит двигатель регулярных выражений.

В противном случае круглые скобки в регулярном выражении используются для группировки и захвата и поэтому должны быть экранированы для использования буквально. Таким образом, для использования в регулярном выражении вы могли бы сделать

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

 Смежные вопросы

  • Нет связанных вопросов^_^