Вы можете прочитать текстовый файл в R, разделить значения через запятую в separate_rows
и затем удалить те строки, которые имеют "Tom"
в качестве отчества. Я бы посоветовал хранить данные там, где каждая запись находится в отдельной строке.
library(dplyr)
df %>%
tidyr::separate_rows(V1, sep = ", ") %>%
filter(!grepl("\\w\\s*Tom\\s*\\w", V1))
# V1
#1 John Andrew Smith
#2 Anton Morvol Tom
#3 Tom Robert Rodes
Если вы хотите вернуть ту же структуру обратно
df %>%
mutate(row = row_number()) %>%
tidyr::separate_rows(V1, sep = ", ") %>%
filter(!grepl("\\w\\s*Tom\\s*\\w", V1)) %>%
group_by(row) %>%
summarise(V1 = toString(V1))
data
Немного изменен ввод для целей тестирования.
text = "John Andrew Smith, Tobias Tom Jones, Anton Morvol Tom, Andy Tom Smith
Wade Tom Jobs, Tom Robert Rodes"
df <- read.table(text = text, sep = "|", strip.white = TRUE)