Как исключить все значения в строке, где происходит первый экземпляр этого значения? (R Dplyr) - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть набор данных, df

Subject

Hi
hello
RE: Hello
RE: How is work
No
Ok
RE: What time are 
Hello RE: are you

Я хотел бы исключить все строки, где первое слово RE:

Тема

Hi
hello
No
Ok
Hello RE: are you

Здесь dput:

 structure(list(Subject = structure(c(2L, 1L, 5L, 6L, 3L, 4L, 
 7L), .Label = c("hello", "HI", "No", "ok", "RE: Hello", "RE:   How     is work", 
 "RE: What time are"), class = "factor")), class = "data.frame",       row.names = c(NA, 
 -7L))

Я пробовал это:

   df %>% 
   filter(Subject!= %RE:)

Я не знаю, как сформулировать код так, чтобы он исключал, только если это первый экземпляр в строке.

Ответы [ 2 ]

2 голосов
/ 04 февраля 2020

Вы можете использовать:

subset(df, !grepl('^RE', Subject))

Или с grep и invert = TRUE

df[grep('^RE', df$Subject, invert = TRUE), , drop = FALSE]

То же самое можно реализовать и в dplyr

library(dplyr)
df %>% filter(!grepl('^RE', Subject))

и с slice и grep

df %>% slice(grep('^RE', Subject, invert = TRUE))
0 голосов
/ 04 февраля 2020

другое решение

library(stringr)
library(tidyverse)
df %>% 
  filter(str_detect(Subject, pattern = "^[RE]", negate = T))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...