gpt4 book ai didi

r - 在mutate_at中使用case_when

转载 作者:行者123 更新时间:2023-12-04 11:51:01 24 4
gpt4 key购买 nike

我想在case_when中使用mutate_at,如以下示例所示:

mtcars %>% 
mutate_at(.vars = vars(vs, am),
.funs = funs(case_when(
. %in% c(1,0,9) ~ TRUE
. %in% c(2,20,200) ~ FALSE
TRUE ~ as.character(.)
)))

. =调用中使用 funs() 的替代版本也不起作用。
mtcars %>%
mutate_at(.vars = vars(vs, am),
.funs = funs(. = case_when(
. %in% c(1, 0, 9) ~ TRUE
. %in% c(2, 20, 200) ~ FALSE
TRUE ~ as.character(.)
)))

所需结果
mtcars %>% 
mutate_at(.vars = vars(vs, am),
.funs = funs(ifelse(. %in% c(1, 0, 9), TRUE, FALSE)))

可以将 FALSE替换为第二个 ifelse()调用,为简洁起见,我没有将其包括在内。

最佳答案

我们需要,来分隔每种情况。另外,如果我们将最后一个选项保留为character,那么TRUE/FALSE也应该是字符。不混合类型

mtcars %>%
mutate_at(.vars = vars(vs, am),
.funs = funs(. = case_when(
. %in% c(1, 0, 9) ~ TRUE,
. %in% c(2, 20, 200) ~ FALSE,
TRUE ~ TRUE
)))

如果我们需要制作 character类并在两种情况中的任何一种都不正确的情况下也将列作为字符返回,也许
mtcars %>%
mutate_at(.vars = vars(vs, am),
.funs = funs(. = case_when(
. %in% c(1, 0, 9) ~ "Yes",
. %in% c(2, 20, 200) ~ "No",
TRUE ~ as.character(.)
)))

关于r - 在mutate_at中使用case_when,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47887950/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com