gpt4 book ai didi

R: 如何在 foreach 中使用 %do%?

转载 作者:行者123 更新时间:2023-12-01 13:48:03 26 4
gpt4 key购买 nike

刚刚研究了R中的foreach函数,看到了代码:

x <- foreach(i=1:3 ) %do% exp(i)

我很好奇我们如何在 foreach 函数中使用“%do%”。foreach 函数的“%do%”是什么?是一种特殊的参数吗?

我看过 foreach 的源代码,但找不到任何线索。

所以任何人都可以帮我弄清楚它是什么,以及如何在我们定义的函数中使用它。

版主注意事项:函数 %do% 有一个特定的用途,但不能完全用侧面的百分号使其成为中缀运算符这一事实来解释。请重新打开。

最佳答案

%do% 是一个函数。您甚至可以通过键入以下内容查看其代码(假设您安装了 foreach 包):

foreach::`%do%`

它有两个参数:第一个是建立迭代的foreach对象;第二个是在中缀模式下使用时%do%后面的表达式。

function (obj, ex) 
{
e <- getDoSeq()
e$fun(obj, substitute(ex), parent.frame(), e$data)
}

显然,foreach 对象的构造包括一个“有趣”对象,它由 getDoSeq 提取。如果执行此代码,您实际上可以看到它在哪里:

z <- foreach::foreach(i=1:3)
str(z)

进一步看来,可以有一个seqFun 大概由用户提供,或者如果没有提供,则 foreach:::doSEQ 函数将用于插入迭代。所以答案不是问题:“我们如何使用 %do%?”,而是应该回答问题:“%do% 如何使用?”处理 foreach 对象并在迭代变量和父环境的联合上下文中连续计算提供的表达式。

关于R: 如何在 foreach 中使用 %do%?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34325465/

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