Purrr ~ 运算符的文档在哪里可以找到?

12

我搜索了 ??"~" 但只找到了 rlang::env_bind(可能是 %<~%)和 base::~。在 RStudio 中,如何找到 Purrr 的 ~ 文档?例如,如果我忘记了如何使用带有两个输入的 ~,我该去哪里查找?


2
波浪号运算符不仅适用于 purrr,它是语言的一部分。请参阅语言定义:https://cran.r-project.org/doc/manuals/r-release/R-lang.html - tmfmnk
2
@tmfmnk "_~波浪号用于模型公式,可以是一元的或二元的_。" 这并没有涉及匿名函数的内容。 - J. Mini
2
这个问题/答案可能对理解 ~ 有所帮助(但不指向文档):https://dev59.com/U1cP5IYBdhLWcg3wH24Z - aosmith
2
是的,在 map() 函数的文档中指出,.f 参数是 函数、公式或向量(不一定是原子) - tmfmnk
2
如果您忘记了如何使用具有两个输入的 ~,则需要查看允许 ~ 函数的函数,而不是 ~ 本身。例如,purrr :: pmap 显示了三种参数化方式,使用 .(单个参数)、.x.y(仅当有两个参数时)或 ..1..2..3 等用于多参量的 ~-functions。 - r2evans
显示剩余6条评论
2个回答

5
当您在purrr函数的上下文中使用~时,它将传递给as_mapper()函数,然后传递给rlangas_function()函数。这些帮助文件提供了使用此功能所需的基本信息。更详细的说明可以在Advanced R Book第9章第22节中找到,其中包含一些很好的示例,并且该章节继续介绍这些想法。

5

AdvanceR(链接在另一个答案中给出)提供了一个很好的解释。在purrr cheatsheat第一页左下角也提供了一个简短描述(用法示例)。

enter image description here

使用 twiddle ~ 与多个参数的用法可以在 purrr 文档中的不同函数中查看。例如,map 查看其参数描述,其中说明:

.f 函数、公式或向量(不一定是原子)。如果是函数,则按原样使用。如果是公式,例如 ~ .x + 2,则将其转换为函数。有三种方法可引用参数: 对于单参数函数,使用 .

对于两个参数的函数,使用 .x 和 .y

对于更多参数,使用 ..1、..2、..3 等。

这种语法允许您创建非常紧凑的匿名函数。


此外, R 的最新版本(4.1.0)也开始使用类似的函数速记符号(链接)

R 现在提供用于创建函数的速记符号,例如 \(x) x + 1 被解析为 function(x) x + 1。

这种速记符号在 tidyverse 之外的函数中也可能很有用,与 twiddle 的区别仅在于默认情况下没有为参数命名。但是,当一个不可见的函数要在另一个函数中使用时,这种非默认命名也可能证明很有用,twiddle 风格的符号在这种情况下将无法使用。


twiddle 与新的基本 R 匿名函数语法非常不同。例如,twiddle 实际上并没有创建匿名函数;purrr 的函数只是将公式对象强制转换为它们可以处理的函数形式。 - J. Mini
@J.Mini,是的,你说得对,我也意识到了。可能我没有表达清楚。 - AnilGoyal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接