gpt4 book ai didi

R 使用管道运算符时的条件评估 %>%

转载 作者:行者123 更新时间:2023-12-03 05:13:27 25 4
gpt4 key购买 nike

将管道运算符 %>%dplyrggvisdycharts 等软件包一起使用时,如何有条件地执行某个步骤?例如;

step_1 %>%
step_2 %>%

if(condition)
step_3

这些方法似乎不起作用:

step_1 %>%
step_2
if(condition) %>% step_3

step_1 %>%
step_2 %>%
if(condition) step_3

还有很长的路要走:

if(condition)
{
step_1 %>%
step_2
}else{
step_1 %>%
step_2 %>%
step_3
}

有没有更好的方法而不需要所有冗余?

最佳答案

这是一个利用 .ifelse 的快速示例:

X<-1
Y<-T

X %>% add(1) %>% { ifelse(Y ,add(.,1), . ) }

ifelse中,如果YTRUE则加1,否则只返回X的最后一个值. 是一个替代函数,它告诉函数链上一步的输出去了哪里,因此我可以在两个分支上使用它。

编辑 正如 @BenBolker 指出的,您可能不需要 ifelse,所以这里有一个 if 版本。

X %>% 
add(1) %>%
{if(Y) add(.,1) else .}

感谢 @Frank 指出我应该在 ififelse 语句周围使用 { 大括号来继续该链。

关于R 使用管道运算符时的条件评估 %>%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30604107/

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