найти символ перед указанным символом

81
11

Я хочу использовать gsub для вычитания символов.

# data
Column name
NORTH HANOVER TWP N J
MULLICA TWP NJ
VERONA N J

Я хочу:

# result
Column name
NORTH HANOVER
MULLICA
VERONA

Я пробую что-то вроде этого:

gsub(" TWP.", "", "NORTH HANOVER TWP N J")
[1] "NORTH HANOVERN J"

Я получил неправильный результат.
Как я могу исправить свой код?

спросил(а) 2018-08-22T04:54:00+03:00 2 года, 1 месяц назад
1
Решение
57

Немного более общий шаблон (не говоря о том, что 100% отказоустойчивость)

cal <- c("NORTH HANOVER TWP N J","MULLICA TWP NJ","VERONA N J","Sierra Nevada TWP NJ")

gsub("\\sTWP\\s?N\\s?J.*|\\sN\\s?J.*","",cal)

#[1] "NORTH HANOVER" "MULLICA" "VERONA" "Sierra Nevada"

По мере того, как заметный ответ завершится неудачно.

ответил(а) 2018-08-22T10:51:00+03:00 2 года, 1 месяц назад
69

Не могли бы вы попробовать следующее (учитывая, что ваш фактический ввод такой же, как показано на примере).

gsub(" TWP.*| N.*","",cal)

Результат будет следующим.


[1] "NORTH HANOVER" "NORTH HANOVER" "MULLICA"       "VERONA" 

Где данные выглядят следующим образом.

cal <- data.frame(column_name=c("NORTH HANOVER","NORTH HANOVER TWP N J","MULLICA TWP NJ","VERONA N J"))

ответил(а) 2018-08-22T05:02:00+03:00 2 года, 1 месяц назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема