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

如何在嵌套函数调用中传递原生R管道的_占位符至...参数

解决R原生管道|>中传递占位符至complete.cases()的问题

在使用R原生管道|>结合dplyr的filter()函数去除NA值时,无需对complete.cases()的...参数做特殊命名赋值,直接使用_占位符指代管道输入即可。

正确写法示例

直接将原生管道的占位符_传入complete.cases():

iris |> filter(complete.cases(_))

或者使用匿名函数显式处理输入数据框(适合更复杂的场景):

iris |> (\(df) filter(df, complete.cases(df)))()

错误原因解析

你之前的写法iris |> filter(complete.cases(... = _))存在两个问题:

  • complete.cases()的...是可变参数,不需要显式命名赋值,直接传入数据框即可;
  • 原生管道的_占位符用于直接指代管道的输入对象(此处为iris数据框),无需绑定到参数名,强行命名会触发语法错误。

与dplyr管道的对比

dplyr的%>%管道用.指代输入,而原生管道|>用_作为等效占位符。在处理整个数据框的场景中,两者的逻辑一致,只是占位符符号不同。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 12:47:17