我们如何有条件地判断本机R|>流水线中的一个步骤?

This post显示了如何使用Magrittr %>%管道来执行此操作.

library(dplyr)

do_thing = TRUE

# Works with magrittr syntax leading into the `{ }` expression.
x <- iris %>%
  { if (do_thing) mutate(., Sepal.Length = Sepal.Length + 100) else . } |> 
  select(Sepal.Length)

# Errors with native pipe leading into the `{ }`
# NB: the placeholder after `mutate(_` is updated
# Error in { : 
#  function '{' not supported in RHS call of a pipe (<input>:2:3)
x <- iris |> 
  { if (do_thing) mutate(_, Sepal.Length = Sepal.Length + 100) else _ } |> 
  select(Sepal.Length)

推荐答案

注意,占位符_被限制为一次使用(另见What are the differences between R's new native pipe |> and the magrittr pipe %>%?).

但是,您可以使用匿名函数.

x <- iris |> 
    {\(.) if (do_thing) mutate(., Sepal.Length = Sepal.Length + 100) else . }() |> 
    select(Sepal.Length)

R相关问答推荐

在通过最大似然估计将ODE模型与数据匹配时,为什么要匹配实际参数的转换值?

过滤器数据.基于两列的帧行和R中的外部向量

根据选中三个复选框中的一个或两个来调整绘图

当两个图层映射到相同的美学时,隐藏一个图层的图例值

如何改变时间图R中的悬停信息?

bslib::card_header中的shine::downloadButton,图标而不是文本

如何在R中合并两个基准点?

使用geom_segment()对y轴排序

如何在R中对深度嵌套的tibbles中的非空连续行求和?

为什么舍入POSIXct会更改能力以匹配等效的POSIXct?

将饼图插入条形图

根据列A中的差异变异列,其中行由列B中的相对值标识

DEN扩展包中的RECT树形图出现异常行为

悬崖三角洲超大型群数计算导致整数溢出

计算直线上点到参考点的总距离

如何使这些react 表对象相互独立?

填充图例什么时候会有点?

整理ggmosaic图的标签

具有自定义仓位限制和计数的GGPLATE直方图

条形图中的条形图没有try 赋予它们的 colored颜色