R 错误:在大小写中使用glue()时必须是字符,而不是glue/字符

R 错误:在大小写中使用glue()时必须是字符,而不是glue/字符,r,dplyr,R,Dplyr,我正在使用glue包在报告中生成动态文本。当我使用dplyr::case_在条件之间切换时,我从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包在报告中生成动态文本。当我使用dplyr::case_在条件之间切换时,我从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")  
)
单独运行时,胶水会起作用:

glue(row.names(one_car), " has bad mileage")
#> Merc 280 has bad mileage

原因可能是case_中的glue类不兼容

一个快速的解决办法是强迫它成为角色

ifelse工作正常。因此,如果ifelseone车$mpg<25,gluerow.namesone车的里程数不好,gluerow.namesone车的里程数很好[1]Merc 280的里程数不好,那么案例中就应该存在一些环境问题。如果我们检查strgluerow.namesone_car类的里程数不好,那么“glue”类、“character”chr Merc 280类的里程数不好。所以可能会用字符“`看到了吗
glue(row.names(one_car), " has bad mileage")
#> Merc 280 has bad mileage
str(glue(row.names(one_car), " has bad mileage"))
#Classes 'glue', 'character'  chr "Merc 280 has bad mileage"
case_when(
   one_car$mpg < 25 ~ as.character(glue(row.names(one_car), " has bad mileage")),
   one_car$mpg >= 25 ~ as.character(glue(row.names(one_car), " has good mileage"))  
  )
#[1] "Merc 280 has bad mileage"