与多个向量一起使用case_when

J

我试图case_when基于两个单独的输入来修改/更改列。一种用于在RHS上创建LHS逻辑和相应输入值的模块。下面提供一个示例。

library(dplyr)
library(purrr)
library(tibble)

df <- tibble(var = paste0(rep("var", 10), 1:10),
                 label = c("label1", "label2", rep(NA, 7), "label10"))

match_var <- paste0(rep("var", 7), 3:9)
new_labels <- paste0(rep("add_this_label", 7), 3:9)

df %>% 
  mutate(test = map2(match_var , new_labels,
                     ~case_when(
                       var == .x ~ .y,
                       TRUE ~ label
                     )
  ))

我认为问题在于,case_when所有内容都被评估为表达式,但我不确定。人们可以手动输入出内的所有7条线case_when,但我的申请要求我做到这一点时,矢量match_varsnew_labels很长-制作手工打字case_when不可行。

df %>% 
  mutate(label = case_when(
    var == match_var[1] ~ new_labels[1],
    var == match_var[2] ~ new_labels[2],
    var == match_var[3] ~ new_labels[3],
    var == match_var[4] ~ new_labels[4],
    var == match_var[5] ~ new_labels[5],
    var == match_var[6] ~ new_labels[6],
    var == match_var[7] ~ new_labels[7],
    TRUE ~ label
  ))

编辑:可以使用for循环来完成所需的结果,但是现在我想知道是否可以使用case_whenmap2_*功能?

for (i in seq_along(match_var)) {
  df$label <- ifelse(df$var == match_var[i], new_labels[i], df$label)
}
阿克伦

我们创建一个命名向量,并使用它来匹配“ var”中的值,以便将NA元素更改为“ new_labels”

library(tibble)
library(dplyr)
df %>%
    mutate(label = case_when(is.na(label) ~ 
                       deframe(tibble(match_var, new_labels))[var], 
         TRUE ~ label))
# A tibble: 10 x 2
#   var   label          
#   <chr> <chr>          
# 1 var1  label1         
# 2 var2  label2         
# 3 var3  add_this_label3
# 4 var4  add_this_label4
# 5 var5  add_this_label5
# 6 var6  add_this_label6
# 7 var7  add_this_label7
# 8 var8  add_this_label8
# 9 var9  add_this_label9
#10 var10 label10        

注意:在使用相反的deframe,名为向量可以被创建setNames,以及

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在ir dplyr与OR一起使用case_when

来自分类Dev

与dplyr一起使用case_when

来自分类Dev

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

来自分类Dev

如何将case_when和grep一起使用以定义新变量

来自分类Dev

在小标题中添加新列,并在RHS中将case_when()与多种替换值一起使用

来自分类Dev

将R中的same()与多个向量一起使用

来自分类Dev

如何使多个变量函数与向量一起使用

来自分类Dev

与 join 一起使用时,Case 返回多个值

来自分类Dev

将向量与Qt一起使用

来自分类Dev

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

来自分类Dev

WASEE和CASE一起使用

来自分类Dev

在Case语句中将变量与多个选项一起使用

来自分类常见问题

与多个execStart一起使用

来自分类Dev

与多个订户一起使用MQTT

来自分类Dev

将 CASE WHEN 与另一个 CASE WHEN 一起使用的 MySQL 解决方案

来自分类Dev

R case_when有多个条件

来自分类Dev

将子向量与qsort一起使用

来自分类Dev

将对向量与用户定义的类对象一起使用

来自分类Dev

为什么不将向量和列表一起使用?

来自分类Dev

与向量iterato一起使用时输出奇怪

来自分类Dev

使用索引向量将多个列聚合在一起的巧妙方法

来自分类Dev

R在使用case_when时提供参数(R向量化)

来自分类Dev

使用case_when,如何更改将向量嵌套在其中的新列表列?

来自分类Dev

如何将GROUP_CONCAT与MAX(CASE WHEN ...)一起使用?

来自分类Dev

将多个计数与多个where子句一起使用

来自分类Dev

如何在case_when中传递列名的向量

来自分类Dev

SQL Server:将CASE与LIKE一起使用

来自分类Dev

在SQL Server中将CASE与JOIN语句一起使用

来自分类Dev

将CASE与表联接一起使用

Related 相关文章

热门标签

归档