我正在尝试使用dplyr :: case_when在dplyr :: mutate中替换一些值:
data<-data%>%
mutate(floor = case_when(
floor_id == 2 ~ "ground_floor",
floor_id == 3 ~ "mezzanine",
floor_id == 1 ~ "basement",
floor_id == 30 ~ "over_10",
floor==1 ~ 1,
floor==2 ~ 2,
floor==3 ~ 3,
floor==4 ~ 4,
floor==5 ~ 5,
floor==6 ~ 6,
floor==7 ~ 7,
floor==8 ~ 8,
floor==9 ~ 9,
floor==10 ~ 10,
TRUE ~ as.character(floor)))
我遇到了一个错误。
Error: must be a character vector, not a double vector
我有两个问题: 1)有人知道如何更改代码以修复此错误吗? 2)如果没有匹配的情况,将返回NA,这就是为什么我添加了所有这些行,比如floor == 10〜10。有没有办法使代码不那么冗余?