R: Как удалить строку, содержащую определенный шаблон символов?

r gsub stringr

1500 просмотра

1 ответ

Я пытаюсь удалить строки, которые содержат определенный шаблон символов. Мои данные выглядят примерно так:

places <- c("copenhagen", "copenhagens", "Berlin", "Hamburg")

Я хотел бы удалить все элементы, которые содержат «Копенгаген», т.е. "copenhagen"и "copenhagens". Но я смог придумать только следующий код:

library(stringr) replacement.vector <- c("copenhagen", "copenhagens")

for(i in 1:length(replacement.vector)){ places = lapply(places, FUN=function(x) gsub(paste0("\\b",replacement.vector[i],"\\b"), "", x))

Я ищу функцию, которая позволяет мне удалить все элементы, которые содержат «copenhagen», без необходимости указывать, включает ли элемент также другие буквы.

Бест доза

Автор: FDose Источник Размещён: 08.11.2019 11:17

Ответы (1)


3 плюса

Решение

Основываясь на коде OP, кажется, что мы должны поднастроить «места». В этом случае может быть лучше использовать grepс invert= TRUEаргументом

grep("copenhagen", places, invert=TRUE, value = TRUE)
#[1] "Berlin"  "Hamburg"

или используйте greplи отрицайте ( !)

places[!grepl("copenhagen", places)]
#[1] "Berlin"  "Hamburg"
Автор: akrun Размещён: 20.08.2016 12:16
Вопросы из категории :
32x32