Переименуйте значения df, используя R - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть следующий фрейм данных:

df <- data.frame(month = c("mazda miata 2017", "honda civic 2017"),
                 april = c(.1,.2),
                 may = c(.1,.2)) 

        month april may
1     miata     0.1 0.1
2     civic     0.2 0.2

Я бы хотел переименовать mazda 3 в mazda и honda civic в honda.Как это можно сделать с помощью dplyr

Ответы [ 4 ]

0 голосов
/ 16 сентября 2018

Попробуйте простое регулярное выражение с str_replace.

В приведенном ниже примере замените "mazda" и "honda" на все, что вы хотели бы удалить.Разделяйте символом ИЛИ |:

 df %>% 
   mutate(month = str_replace(month, "mazda |honda ", "") )

       month april may
1 miata 2017   0.1 0.1
2 civic 2017   0.2 0.2
0 голосов
/ 14 сентября 2018

Для решения вашей проблемы вы можете использовать следующее решение:

levels(df$month)[levels(df$month )=="mazda 3"] <- "mazda"
levels(df$month)[levels(df$month )=="honda civic"] <- "honda"
0 голосов
/ 14 сентября 2018

Так как вы упоминаете dplyr

library(dplyr)
library(tidyr)
df%>%tidyr::separate(month, c("month","Drop"), " ")%>%select(-Drop)
  month april may
1 mazda   0.1 0.1
2 honda   0.2 0.2
0 голосов
/ 14 сентября 2018

Вам нужно использовать dplyr?

Достаточно просто с gsub:

df$month <- gsub("honda civic", "honda", df$month)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...