Grep несколько строковых операторов - PullRequest
0 голосов
/ 04 января 2019

Чтобы удалить конкретную строку из нескольких столбцов, мы должны использовать это:

df1 <- with(df, df[ grepl( 'word1', df$Col1) | grepl( 'word1', df$Col2) | grepl( 'word1', df$Col3), ])

Если у нас более одной строки, как это:

df1 <- with(df, df[ grepl( 'word1', df$Col1) | grepl( 'word1', df$Col2) | grepl( 'word1', df$Col3), ])
df2 <- with(df, df[ grepl( 'word2', df$Col1) | grepl( 'word2', df$Col2) | grepl( 'word2', df$Col3), ])

Как это возможноиметь один вызов вместо многих для 'word1;и «слово2» будет в одном ине?

1 Ответ

0 голосов
/ 04 января 2019

Сначала вам нужно объединенное регулярное выражение.Вы можете проверить его на https://regex101.com/ Затем вы можете использовать apply(), чтобы запустить его на каждом столбце.Это даст матрицу значений TRUE или FALSE.1 строка на переменную, 1 столбец на наблюдение.Вы можете apply() any() на этой матрице, чтобы получить выбор.

test <- apply(df, 2, grepl, pattern = "word1|word2")
df[apply(test, 2, any), ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...