【发布时间】:2020-11-30 11:38:24
【问题描述】:
在这方面花了很多时间,所以希望有人能提供建议。我有一段使用 funs() 的代码,该代码已被软性弃用,因此尝试了替代方法,但无法使其按预期工作。
旧:
df %>% mutate_at(vars(x,y,z),
.funs = funs(Comment = case_when(
.%in% "YES") ~ deparse(substitute(.))))
这给出了三个新变量:x_Comment、y_Comment 和 z_Comment - 如果相关变量包含“YES”,则将包含相关变量名称(“x”、“y”或“z”)
更新:
df %>% mutate_at(vars(x,y,z),
.funs = list(Comment = ~case_when(
.%in% "YES") ~ deparse(substitute(.))))
我已根据有关 funs() 被软弃用的警告更新了代码,但上述内容不起作用。它按预期给出了三个新变量:x_Comment、y_Comment 和 z_Comment - 但是如果相关变量包含“YES”,它会给出“.”。而不是变量名。
任何解决方案 - 最好是 tidyverse 非常感谢!
谢谢!
【问题讨论】:
-
请注意,
. %in% "YES"等同于. == "YES"。 -
@KonradRudolph 谢谢!当向量中有多个选项时,我使用 %in% - 已简化示例以在此处发布并保持原样。
标签: r dplyr tidyverse deprecated