使用管道时无需输入第一个参数

马蒂福

%>%管道运营商不断将左手侧(LHS)到右侧(RHS)的第一个参数?即使在RHS调用中再次指定了第一个参数?

假设我要指定要在其中使用的变量cor()

library(magrittr)
iris  %>%
  cor(x=.$Sepal.Length, y=.$Sepal.Width)

但这失败了,它看起来像什么cor(., x=.$Sepal.Length, y=.$Sepal.Width)

我知道我可以代替

iris  %$%
  cor(x=Sepal.Length, y=Sepal.Width)

但想找到一个解决方案%>%...

康拉德·鲁道夫

%>%管道运营商不断将左手侧(LHS)到右侧(RHS)的第一个参数?即使在RHS调用中再次指定了第一个参数?

否。您自己已经注意到了该异常:如果右侧使用.,则不会输入左侧的第一个参数。您需要手动传递它。

但是,这种情况在您的情况下不会发生,因为您不是.在单独使用它,而是在一个表达式内使用它。为了避免将左侧作为第一个参数,您还需要使用花括号:

iris %>% {cor(x = .$Sepal.Length, y = .$Sepal.Width)}

要么:

iris %$% cor(x = Sepal.Length, y = Sepal.Width)

—毕竟,这%$%就是要用的,而不是%>%

但是比较一下:

iris %>% lm(Sepal.Width ~ Sepal.Length, data = .)

在这里,我们将左侧表达式显式传递为的data参数lm这样,我们可以防止将其作为第一个参数传递给lm

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Ramda管道中使用相同的第一个参数

当第一个程序未在BASH中退出时使用2级管道的问题

如何使用带有可选第一个参数的输入提示

当iterable不是函数的第一个参数时

当使用split(',')推送内部输入值时,如何删除第一个逗号?

使用getch时线程忽略第一个输入

使用空格键对焦时删除输入中的第一个空格

当第一个参数使用flip时了解map函数

使用第一个可选参数进行重载

webpack require。确保使用第一个参数

Shell函数仅使用第一个参数

$ @除了第一个参数

第一个参数索引

如何使用@RequestParam在Spring MVC中请求数组类型参数时始终获取第一个参数

当我在输入中输入数字时,第一个功能启动

在ReactJS中使用Map函数时,如何设置defaultChecked为仅在单选按钮中的第一个输入

创建第一个数据管道

当第一个输入值的长度为3时,如何关注下一个输入?

整数错误(第一个输入参数必须是函数句柄。)

Bash检测第一个输入参数是否为“调试”?

Matlab 集成拟合“linearinterp”返回错误“第一个输入参数必须是函数句柄”

MATLAB-积分2-第一个输入参数必须是函数句柄

使用缓冲区解码base64时出错。第一个参数必须是数字

由于第一个值而在变异管道错误中使用diff

获取使用eval的第一个管道命令的返回码?

如果第一个输入为空,如何使用jQuery禁用输入类型日期

第一个参数包含所有参数

如何运行命令行FFMPEG并接受多个管道(视频和音频)而不阻塞第一个输入?

FFmpeg filter_complex concat仅在裁剪时提供第一个输入