在R中使用mutate,case_when,any()和all()函数使用Group by

borderline_coder

status_df每个阶段我都有一个ID和状态:

ID 阶段 状态
15 1个 待定
15 2 未发送
16 1个 已批准
16 2 被拒绝
16 3 未发送
16 4 未发送
20 1个 已批准
20 2 已批准
20 3 已批准

我试图做一个group_by ID并应用以下逻辑:

  • 如果anyID的阶段状态为“待处理”,则final_status列为“待处理”
  • 如果anyID的阶段状态为“已拒绝”,则final_status列为“已拒绝”
  • 如果allID的阶段已批准,则final_status列为“已批准”

我正在尝试这样做(不起作用):

final_status_df = status_df %>% select(id, status) %>% group_by(id) %>%
mutate(final_status = case_when(any(status)=="Pending" ~ "Pending",
any(status)=="Rejected" ~ "Rejected", 
all(status)=="Approved" ~ "Approved"))

预期输出(final_status_df):

ID final_status
15 待定
16 被拒绝
20 已批准
罗纳克·沙

您的尝试方向正确,但是在比较(之前,您已将any/all括弧括起来==另外,由于您只希望每行id可以使用1行,summarise而不是每行都mutate可以避免使用select

library(dplyr)

status_df %>% 
  group_by(id) %>%
  summarise(final_status = case_when(any(status == "Pending") ~ "Pending",
                                     any(status == "Rejected") ~ "Rejected", 
                                     all(status == "Approved") ~ "Approved"))

#    id final_status
#* <int> <chr>       
#1    15 Pending     
#2    16 Rejected    
#3    20 Approved    

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 dplyr mutate() 函数中使用 case_when ?

来自分类Dev

用户定义的函数使用mutate和case_when

来自分类Dev

在 R 中的 dplyr 中使用带有 mutate 和 case_when 的 shift:未按预期工作

来自分类Dev

mutate_all在r中的列表上使用map和case_when / ifelse

来自分类Dev

循环使用mutate和case_when

来自分类Dev

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

来自分类Dev

R dplyr与mutate()和case_when()有效地使用cross()

来自分类Dev

使用any和all作为对case_when中多个元素的逻辑测试?

来自分类Dev

R:使用“ for”循环和“ case_when”检查多个变量。

来自分类Dev

在 dplyr::case_when 中使用 NSE

来自分类Dev

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

来自分类Dev

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

来自分类Dev

R 使用 Group by 和 Mutate 创建自定义函数

来自分类Dev

在R中使用lag和mutate命令创建迭代函数

来自分类Dev

在dplyr :: mutate()上下文中在dplyr :: case_when()中使用复杂的RHS表达式

来自分类Dev

在mutate_at()中使用case_when()用NA重新编码具有不同类型的所选列的行

来自分类Dev

R case_when和%in%

来自分类Dev

如何将case_when与mutate_all一起使用以插入变量值

来自分类Dev

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

来自分类Dev

在对应阈值表中使用case_when和之间

来自分类Dev

在分组的行中使用case_when()并选择何时显示项目-tidyverse / R解决方案

来自分类Dev

在dplyr中使用case_when时遇到问题

来自分类Dev

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

来自分类Dev

在Dplyr中使用case_when难以创建新列

来自分类Dev

如何使用case_when函数?我的输出是R中的NA

来自分类Dev

mutate和case_when:错误的数字和不适用

来自分类Dev

如何将映射函数应用于 mutate 和 case_when 函数中的动态列名?

来自分类Dev

在group_by()%>%mutate()函数调用中使用带引号的变量

来自分类Dev

在mutate函数中使用contains()

Related 相关文章

  1. 1

    如何在 dplyr mutate() 函数中使用 case_when ?

  2. 2

    用户定义的函数使用mutate和case_when

  3. 3

    在 R 中的 dplyr 中使用带有 mutate 和 case_when 的 shift:未按预期工作

  4. 4

    mutate_all在r中的列表上使用map和case_when / ifelse

  5. 5

    循环使用mutate和case_when

  6. 6

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

  7. 7

    R dplyr与mutate()和case_when()有效地使用cross()

  8. 8

    使用any和all作为对case_when中多个元素的逻辑测试?

  9. 9

    R:使用“ for”循环和“ case_when”检查多个变量。

  10. 10

    在 dplyr::case_when 中使用 NSE

  11. 11

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

  12. 12

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

  13. 13

    R 使用 Group by 和 Mutate 创建自定义函数

  14. 14

    在R中使用lag和mutate命令创建迭代函数

  15. 15

    在dplyr :: mutate()上下文中在dplyr :: case_when()中使用复杂的RHS表达式

  16. 16

    在mutate_at()中使用case_when()用NA重新编码具有不同类型的所选列的行

  17. 17

    R case_when和%in%

  18. 18

    如何将case_when与mutate_all一起使用以插入变量值

  19. 19

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

  20. 20

    在对应阈值表中使用case_when和之间

  21. 21

    在分组的行中使用case_when()并选择何时显示项目-tidyverse / R解决方案

  22. 22

    在dplyr中使用case_when时遇到问题

  23. 23

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

  24. 24

    在Dplyr中使用case_when难以创建新列

  25. 25

    如何使用case_when函数?我的输出是R中的NA

  26. 26

    mutate和case_when:错误的数字和不适用

  27. 27

    如何将映射函数应用于 mutate 和 case_when 函数中的动态列名?

  28. 28

    在group_by()%>%mutate()函数调用中使用带引号的变量

  29. 29

    在mutate函数中使用contains()

热门标签

归档