【发布时间】:2023-02-04 20:48:43
【问题描述】:
我想在 case_when 语句中动态选择要操作的列。在dplyr 中,我通常的做法是将列名变量包装在!!sym() 中。但是,这似乎不适用于case_when()。我也尝试过使用 ifelse() 和 if(){}else{} 语句,但似乎都不适用于 !!sym()。有任何想法吗?
这是一个不起作用的例子!
col = "cyl"
mtcars %>%
mutate(new_col = case_when(!!sym(col) == 6 ~ "Standard",
TRUE ~ "Sample"))
【问题讨论】:
-
那应该可以正常工作。签入新会话 - 尽管下面给出的
.data[[col]]方法是推荐的方法。
标签: r if-statement dplyr case