case_when 在 mutate 管道中 [英] case_when in mutate pipe

查看:33
本文介绍了case_when 在 mutate 管道中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

似乎 dplyr::case_when 的行为与 dplyr::mutate 调用中的其他命令不同.例如:

库(dplyr)case_when(mtcars$carb <= 2 ~ "low",mtcars$carb>2~高")%>%桌子

作品:

<预><代码>.前高后低15 17

但是把 case_when 放在一个 mutate 链中:

mtcars %>%变异(cg = case_when(carb <= 2 ~低",碳水化合物 >2~高"))

你会得到:

 错误:找不到对象carb"

虽然这工作正常

mtcars %>%变异(cg = 碳水化合物 %>%切(c(0、2、8)))

解决方案

dplyr0.7.0 版本开始,case_when 适用于mutate 如下:

library(dplyr) # >= 0.7.0mtcars %>%变异(cg = case_when(carb <= 2 ~低",碳水化合物 >2~高"))

更多信息:http://dplyr.tidyverse.org/reference/case_when.html

It seems dplyr::case_when doesn't behave as other commands in a dplyr::mutate call. For instance:

library(dplyr)

case_when(mtcars$carb <= 2 ~ "low",
          mtcars$carb > 2 ~ "high") %>% 
  table

works:

.
high  low 
  15   17 

But put case_when in a mutate chain:

mtcars %>% 
  mutate(cg = case_when(carb <= 2 ~ "low",
                        carb > 2 ~ "high"))

and you get:

 Error: object 'carb' not found

while this works fine

mtcars %>% 
  mutate(cg = carb %>% 
           cut(c(0, 2, 8)))

解决方案

As of version 0.7.0 of dplyr, case_when works within mutate as follows:

library(dplyr) # >= 0.7.0
mtcars %>% 
  mutate(cg = case_when(carb <= 2 ~ "low",
                        carb > 2  ~ "high"))

For more information: http://dplyr.tidyverse.org/reference/case_when.html

这篇关于case_when 在 mutate 管道中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆