Как сохранить определенное слово в строке по всему столбцу и удалить все остальные? - PullRequest
0 голосов
/ 25 августа 2018

Мой фрейм данных такой:

data <- data.frame(column = c("word1 word2 word3", "word2 word1", "word3 word2", "word1 word2", "word3", "word1 word2"))
data

  column
1 word1 word2 word3
2 word2 word1
3 word3 word2
4 word1 word2
5 word3
6 word1 word2

Я хочу сохранить часть "word1" во всех строках, где это происходит, и удалить другие части этих строк.

Мой предпочтительный вывод такой:

  column
1 word1
2 word1
3 word3 word2
4 word1
5 word3
6 word1

Я пытался data$column %>% str_replace("^[word1]*", " "), но это не помогло.

Ответы [ 2 ]

0 голосов
/ 25 августа 2018

Еще одна опция, которая проверяет, находится ли word1 в столбце, а затем заменяет остальные, если это так.(v0.2.0).

0 голосов
/ 25 августа 2018

Вот возможность

library(tidyverse)
data %>% mutate(column = str_replace(column, "^.*word1.*$", "word1"))
       column
1       word1
2       word1
3 word3 word2
4       word1
5       word3
6       word1

или с группой захвата

data %>% mutate(column = str_replace(column, "^.*(word1).*$", "\\1"))
...