I'm using the glue package to generate dynamic text in a report. When I use dplyr::case_when to switch between conditions, I get an error from glue.
library(dplyr); library(glue)
one_car <- mtcars[10, ]
# Throws error:
answer <- case_when(
one_car$mpg < 25 ~ glue(row.names(one_car), " has bad mileage"),
one_car$mpg >= 25 ~ glue(row.names(one_car), " has good mileage")
)
Error: must be character, not glue/character
The case_when works without glue:
answer <- case_when(
one_car$mpg < 25 ~ 0,
one_car$mpg >= 25 ~ 1
)
And the glue works when run alone:
glue(row.names(one_car), " has bad mileage")
#> Merc 280 has bad mileage