如何使用dplyr根据向量中字符串的存在情况进行变异和赋值

如何使用dplyr根据向量中字符串的存在情况进行变异和赋值,r,dplyr,R,Dplyr,我有以下数据框: 库(tidyverse) dat% 行名称到列(变量='car\u name')%>% as.tible()%>% 水头(n=5)%>% 选择(车辆名称,mpg) dat #>#A tible:32 x 2 #>汽车名称 #> #>1马自达RX4 21 #>2马自达RX4 Wag 21 #>3 Datsun 710 22.8 #>4大黄蜂4路21.4 #>5大黄蜂运动约18.7 由(v0.2.0)于2019年2月20日创建 给定一个向量: g

我有以下数据框:

库(tidyverse)
dat%
行名称到列(变量='car\u name')%>%
as.tible()%>%
水头(n=5)%>%
选择(车辆名称,mpg)
dat
#>#A tible:32 x 2
#>汽车名称
#>                 
#>1马自达RX4 21
#>2马自达RX4 Wag 21
#>3 Datsun 710 22.8
#>4大黄蜂4路21.4
#>5大黄蜂运动约18.7
由(v0.2.0)于2019年2月20日创建

给定一个向量:

good_cars <- c("Mazda RX4", "Mazda RX4 Wag", "Datsun 710")
我想得到的结果是:

  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
car\u name mpg条件
1马自达RX4 21良好
2马自达RX4 Wag 21良好
3 Datsun 710 22.8良好
4大黄蜂4路21.4坏
5大黄蜂运动约18.7坏
库(tidyverse)
dat%
行名称到列(变量='car\u name')%>%
as.tible()%>%
水头(n=5)%>%
选择(车辆名称,mpg)
dat%>%变异(条件=if\u else(车名%(在%好车中),“好车”,“坏车”))
#一个tibble:5x3
车辆名称mpg条件
1马自达RX4 21良好
2马自达RX4 Wag 21良好
3 Datsun 710 22.8良好
4大黄蜂4路21.4坏
5大黄蜂运动约18.7坏
case\u when(car\u name%在%good\u cars~“good”,TRUE~“BAD”)
。如果只有一个条件,则可以使用
If\u else
  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
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