2015-12-03 2 views
0

Получаю, как найти подстроку, используя substr() и grep(). Моя проблема - избавиться от всего, что происходит после подстроки. Вот пример моего набора данных:Поиск подстроки и прохождение всего после указанной подстроки в переменной в R

Williamsport, Pennsylvania !Williamsport, Pennsylvania 
El Cajon, California !El Cajon, California 
Gary, Indiana !Gary, Indiana 
New York City         
Bowie, Maryland 

Я хочу избавиться от всего после «!». Могу ли я использовать ifelse(), если да, то каким образом?

+0

Вы уверены, что у вас будет только восклицательный знак? –

ответ

2

Вы можете использовать sub().

sub(" !.*", "", x) 
# [1] "Williamsport, Pennsylvania" "El Cajon, California"  "Gary, Indiana" 
# [4] "New York City"    "Bowie, Maryland" 

.* является регулярное выражение, обозначающее любой символ, любое количество раз. Так что в основном говорится: «Удалите все после " !"».

данные:

x <- c(
    "Williamsport, Pennsylvania !Williamsport, Pennsylvania", 
    "El Cajon, California !El Cajon, California", 
    "Gary, Indiana !Gary, Indiana", 
    "New York City", 
    "Bowie, Maryland" 
) 
0

Возможно:

sub("(.*)(\\ \\!.*)", "\\1", txtvec) 

Как предложено в комментариях это может не совпадать с первым экземпляром, но был бы более конкретным образец, если это «!» были проблемой.

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

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