首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >变异管道中的case_when

变异管道中的case_when
EN

Stack Overflow用户
提问于 2016-07-29 10:16:35
回答 3查看 112.8K关注 0票数 55

dplyr::mutate调用中,dplyr::case_when似乎不像其他命令那样工作。例如:

代码语言:javascript
复制
library(dplyr)

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

作品:

代码语言:javascript
复制
.
high  low 
  15   17 

但是把case_when放在mutate链中:

代码语言:javascript
复制
mtcars %>% 
  mutate(cg = case_when(carb <= 2 ~ "low",
                        carb > 2 ~ "high"))

然后你会得到:

代码语言:javascript
复制
 Error: object 'carb' not found

虽然这样做没什么问题

代码语言:javascript
复制
mtcars %>% 
  mutate(cg = carb %>% 
           cut(c(0, 2, 8)))
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-07-06 00:23:39

dplyr0.7.0版本开始,case_whenmutate中的工作方式如下:

代码语言:javascript
复制
library(dplyr) # >= 0.7.0
mtcars %>% 
  mutate(cg = case_when(carb <= 2 ~ "low",
                        carb > 2  ~ "high"))

欲了解更多信息,请访问:http://dplyr.tidyverse.org/reference/case_when.html

票数 81
EN

Stack Overflow用户

发布于 2016-07-29 10:30:51

我们可以使用.$

代码语言:javascript
复制
mtcars %>%  
     mutate(cg = case_when(.$carb <= 2 ~ "low",  .$carb > 2 ~ "high")) %>%
    .$cg %>%
    table()
# high  low 
#  15   17 
票数 19
EN

Stack Overflow用户

发布于 2018-10-19 02:59:47

代码语言:javascript
复制
library(dplyr) #loading the dplyr package

content150_fortified <- content150 %>% #creating a new variable
mutate(number_yn = case_when( #creating a new column using mutate
        number >= 18 & number <=25 ~ "no", # if number is "none", make number_yn "no"
        number!="none" ~ "yes"  # if number is not "none", make number_yn "yes"
        )
      )
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38649533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档