You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言中可配合管道运算符使用的if语句等价函数

实现管道式条件执行的解决方案

你要的这种管道式条件执行可以通过自定义函数或者调整现有函数的用法来实现,以下是几种可行的方法:

1. 自定义function_if函数(完全匹配你的写法)

直接实现你设想的function_if,逻辑和原生if一致:

library(dplyr)

function_if <- function(input, cond) {
  if (cond) input
}

# 测试
cond <- TRUE
print('Hello') %>% function_if(cond)
# [1] "Hello"

cond <- FALSE
print('Hello') %>% function_if(cond)
# 无输出

2. 用基础R管道结合匿名函数

不需要额外写函数,用管道的匿名函数语法就能搞定:

cond <- TRUE
print('Hello') %>% { if (cond) . }
# [1] "Hello"

这里的.指代管道传过来的print('Hello')执行结果,条件为真时返回它,假时无输出。

3. 正确使用purrr::when(针对你的场景调整)

其实purrr::when是可以实现的,可能之前的用法不对,试试这种写法:

library(purrr)

cond <- TRUE
cond %>% when(TRUE ~ print('Hello'))
# [1] "Hello"

内容的提问来源于stack exchange,提问作者Julien

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 12:18:26