Mutate和case_when在提供NA时 [英] Mutate and case_when is giving NA's

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

问题描述

mutate函数中使用dplyr s casewhen时,我得到的返回NA.我喜欢casewhen,因为如果我想将FALSE值设置为原始值的默认值,则不必使用长的ifelse语句.这不是使用casewhen的重点吗?此代码将导致NA.

I'm getting NA returned when using dplyrs casewhen in the mutate function. I like casewhen because I don't have to use the long ifelse statements if I want to FALSE value to be the default of the original value. Is this not the point of using casewhen? This code results in the NAs.

mtcars %>% 
  as_tibble() %>% 
  mutate(vs = case_when(carb == 4 ~ +5))

当carb的值为4时,我想在vs列中加1.谢谢.

I'd like to add 1 to vs column when values of carb are 4. Thanks.

推荐答案

您需要为所有不满足任何条件的其余条件定义TRUE参数,并为其提供所需的值.

You need to define the TRUE argument to all the remaining conditions which do not satisfy any condition and give it the value which you like.

library(dplyr)
mtcars %>% 
  as_tibble() %>% 
  mutate(vs = case_when(carb == 4 ~ 5, 
                        TRUE ~ vs))

#     mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb
#    <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
# 1  21       6  160    110  3.9   2.62  16.5     5     1     4     4
# 2  21       6  160    110  3.9   2.88  17.0     5     1     4     4
# 3  22.8     4  108     93  3.85  2.32  18.6     1     1     4     1
# 4  21.4     6  258    110  3.08  3.22  19.4     1     0     3     1
# 5  18.7     8  360    175  3.15  3.44  17.0     0     0     3     2
# 6  18.1     6  225    105  2.76  3.46  20.2     1     0     3     1
# 7  14.3     8  360    245  3.21  3.57  15.8     5     0     3     4
# 8  24.4     4  147.    62  3.69  3.19  20       1     0     4     2
# 9  22.8     4  141.    95  3.92  3.15  22.9     1     0     4     2
#10  19.2     6  168.   123  3.92  3.44  18.3     5     0     4     4
# ... with 22 more rows

这篇关于Mutate和case_when在提供NA时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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