gpt4 book ai didi

r - 在 case_when() 中抛出错误

转载 作者:行者123 更新时间:2023-12-03 19:33:20 26 4
gpt4 key购买 nike

我有一个 case_when()里面mutate()如果 TRUE,我希望 R 停止并抛出错误条件满足。这是为了调试目的。

例如,mtcars$cyl 的值为 4、6 或 8。在第四行中使用适当的解决方案后,它应该能够无错误地运行:

mtcars %>%
mutate(test = case_when(
cyl > 3 ~ "ok",
TRUE ~ # code for throwing error here
))

这应该抛出错误:
mtcars %>%
mutate(test = case_when(
cyl < 3 ~ "ok",
TRUE ~ # code for throwing error here
))

我试过 stop但这会触发异常,即使 TRUE永远不会实现。

最佳答案

您不能在 case_when 中执行此操作据我所知,请调用,因为所有 RHS 都将事先进行评估,以确保它们属于同一类型。

但是,您可以这样做:

mtcars %>%
mutate(test = case_when(
cyl > 3 ~ "ok",
TRUE ~ NA_character_
),
test=if (anyNA(test)) stop() else test
)

或者
mtcars %>%
mutate(test = case_when(
cyl > 3 ~ "ok",
TRUE ~ "STOP_VALUE"
),
test=if ("STOP_VALUE" %in% test) stop() else test
)

关于r - 在 case_when() 中抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52086562/

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