Как изменить и присвоить значение на основе наличия строки в векторе, используя dplyr - PullRequest
0 голосов
/ 20 февраля 2019

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

library(tidyverse)
dat <- mtcars %>% 
  rownames_to_column(var = 'car_name') %>% 
  as.tibble() %>% 
  head(n=5) %>% 
  select(car_name, mpg)

dat
#> # A tibble: 32 x 2
#>    car_name            mpg
#>    <chr>             <dbl>
#>  1 Mazda RX4          21  
#>  2 Mazda RX4 Wag      21  
#>  3 Datsun 710         22.8
#>  4 Hornet 4 Drive     21.4
#>  5 Hornet Sportabout  18.7

Создано в 2019-02-20 с помощью пакета Представить (v0.2.0).

Учитываяvector:

good_cars <- c("Mazda RX4", "Mazda RX4 Wag", "Datsun 710")

Я хочу назначить добавить еще один столбец в dat, чтобы всякий раз, когда car_name сохранялся в good_cars, я назначал бы хорошее состояние:

Я пробовал этоно не удалось:

dat %>% 
 mutate(condition = case_when( car_name %in% good_cars == "GOOD" ~ "BAD"))

Результат, который я хотел бы получить:

  car_name            mpg condition
  <chr>             <dbl> <chr>    
1 Mazda RX4          21   GOOD      
2 Mazda RX4 Wag      21   GOOD       
3 Datsun 710         22.8 GOOD       
4 Hornet 4 Drive     21.4 BAD      
5 Hornet Sportabout  18.7 BAD

1 Ответ

0 голосов
/ 20 февраля 2019
library(tidyverse)
dat <- mtcars %>% 
  rownames_to_column(var = 'car_name') %>% 
  as.tibble() %>% 
  head(n=5) %>% 
  select(car_name, mpg)

dat%>%mutate(condition=if_else(car_name%in%good_cars,"GOOD","BAD"))
# A tibble: 5 x 3
  car_name            mpg condition
  <chr>             <dbl> <chr>    
1 Mazda RX4          21   GOOD     
2 Mazda RX4 Wag      21   GOOD     
3 Datsun 710         22.8 GOOD     
4 Hornet 4 Drive     21.4 BAD      
5 Hornet Sportabout  18.7 BAD  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...