Mutate和case_when在提供NA时 [英] Mutate and case_when is giving NA's
本文介绍了Mutate和case_when在提供NA时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在mutate
函数中使用dplyr
s casewhen
时,我得到的返回NA.我喜欢casewhen
,因为如果我想将FALSE值设置为原始值的默认值,则不必使用长的ifelse
语句.这不是使用casewhen
的重点吗?此代码将导致NA.
I'm getting NA returned when using dplyr
s 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屋!
查看全文