如果不是case_when语句,则保留值

埃美塞克斯

我的数据如下所示:

df <- expand.grid(grade = c("A", 1, "B", 2, 3, "C"), value = c(0, 1))

当我尝试更换AB以及C■在一个case_when声明中,非替换值去NA......我希望他们留下来!

试图:

library(dplyr)
df_new <- df %>% 
mutate(grade = case_when(
.$grade == "A" ~ 1,
.$grade == "B" ~ 2,
.$grade == "C" ~ 3))

所需的输出:

df <- data.frame(grade = c(rep(1, 4), rep(2, 4), rep(3, 4)), value = rep(c(0, 1), 6))

注意**寻找case_when解决方案,而不是ifelse解决方案。

TJ·马哈(TJ Mahr)

case_when语句是双向公式,其中左侧是逻辑测试,右侧是该测试为时要分配的值TRUE

逻辑测试从未匹配的值将获得默认替换值:NA为避免这些值变小NA,请进行最后的全面测试和替换。

library(tidyverse)
df <- expand.grid(grade = c("A", 1, "B", 2, 3, "C"), value = c(0, 1))

df %>%
  mutate(old_grade = grade) %>%
  select(old_grade, grade, value) %>%
  mutate(grade = case_when(
    grade == "A" ~ 1,
    grade == "B" ~ 2,
    grade == "C" ~ 3,
    TRUE ~ as.numeric(as.character(grade)))
  )
#> Warning: Problem with `mutate()` input `grade`.
#> i NAs introduced by coercion
#> i Input `grade` is `case_when(...)`.
#>    old_grade grade value
#> 1          A     1     0
#> 2          1     1     0
#> 3          B     2     0
#> 4          2     2     0
#> 5          3     3     0
#> 6          C     3     0
#> 7          A     1     1
#> 8          1     1     1
#> 9          B     2     1
#> 10         2     2     1
#> 11         3     3     1
#> 12         C     3     1

reprex软件包(v1.0.0)创建于2021-02-19

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在IF或CASE WHEN语句中选择多个值

来自分类Dev

case_when在mutate管道中

来自分类Dev

如何在首次使用唯一值时使用case_when创建新变量

来自分类Dev

在case_when内部制作tidyeval函数

来自分类Dev

在case_when()的LHS中使用值的位置出现

来自分类Dev

使用mutate_at和case_when将变量名称分配为值

来自分类Dev

R case_when有多个条件

来自分类Dev

使用group_by和case_when为每个组产生单个值

来自分类Dev

如果不是CSS中的语句?

来自分类Dev

循环使用mutate和case_when

来自分类Dev

Tidyverse:case_when()未返回正确值

来自分类Dev

输入“ var”必须是向量,而不是“ formula”对象。[case_when; 变异问题]

来自分类Dev

使用R中的mutate和case_when()语句将unite()填充为整列

来自分类Dev

R case_when和%in%

来自分类Dev

如何将NULL值合并到case_when中?

来自分类Dev

dplyr:case_when / mutate / filter当多行具有共同值时

来自分类Dev

在case_when中如何使用tidydots?

来自分类Dev

如何调和purrr :: map与case_when

来自分类Dev

突变,跨越和case_when

来自分类Dev

一种通过使用查找表而不是case_when替换R中100个唯一值的方法?

来自分类Dev

如何从case_when()返回多个值或小标题?

来自分类Dev

如何在首次使用唯一值时使用case_when创建新变量

来自分类Dev

CASE语句值检查

来自分类Dev

如果匹配返回并从CASE语句退出,则使用CASE比较SQL中的值

来自分类Dev

Bash脚本Case语句(如果不是逻辑)

来自分类Dev

剃刀引擎(如果不是)语句

来自分类Dev

在 dplyr::case_when 中使用 NSE

来自分类Dev

使用 mutate 和 case_when 时从现有列插入值

来自分类Dev

如何使用 case_when 而不是 if_else [我的代码中有错误?]

Related 相关文章

热门标签

归档