Reputation: 5169
I have the following data frame:
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
Created on 2019-02-20 by the reprex package (v0.2.0).
Given a vector:
good_cars <- c("Mazda RX4", "Mazda RX4 Wag", "Datsun 710")
I want to assign add another column in dat such that whenever the car_name
is stored in good_cars
I would assign a status as good:
I tried this but failed:
dat %>%
mutate(condition = case_when( car_name %in% good_cars == "GOOD" ~ "BAD"))
The result I'd like to get is:
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
Upvotes: 1
Views: 405
Reputation: 2467
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
Upvotes: 2