удаление определенного шаблона из строки

У меня есть вектор, как показано ниже:

t <- c("8466 W Peoria Ave", "4250 W Anthem Way", .....)

Я хочу преобразовать его в:

t_mod <-c("Peoria Ave", "Anthem Way".....)

То есть я хочу удалить числа и отдельные символы из моего вектора строк.

Любая помощь будет действительно оценена.


person Ayush Raj Singh    schedule 19.06.2013    source источник
comment
Вы можете исправить свой t-вектор, используя регулярные выражения в R: stat.ethz.ch/R-manual/R-patched/library/base/html/regex.html, вызвав функцию grep... удаление отдельных символов: stackoverflow.com/questions/10306312/ .. . удаление чисел: stackoverflow.com/questions/3363005/   -  person Teemu Daniel Laajala    schedule 19.06.2013
comment
лучше не использовать t в качестве имени переменной   -  person user1609452    schedule 19.06.2013


Ответы (2)


Ну вот:

# Data
t <- c("8466 W Peoria Ave", "4250 W Anthem Way")

# Remove numbers and split by whitespace
t.char <- sub("[[:alnum:]]* ", "", t) 
t.char.split <- strsplit(t.char, " ")

# Remove strings with only one character
t.mod <- sapply(t.char.split, function(i) {
  paste(i[which(nchar(i) > 1)], collapse = " ")
})

t.mod
[1] "Peoria Ave" "Anthem Way"
person fdetsch    schedule 19.06.2013

Я не очень хорошо разбираюсь в регулярных выражениях, но я могу попробовать, как насчет этого:

t_mod <- gsub("^[0-9]{1,} [a-z][A-Z] ", "", t)

Это сначала удалит любое количество числовых цифр в начале строки, за которыми следует пробел, любой алфавит, а затем еще один пробел. Тогда мой t_mod выглядит так, как вам нужно:

t_mod
[1] "Peoria Ave" "Anthem Way"
person asb    schedule 19.06.2013