【问题标题】:I see it, but I don't believe it. Legal names in R, piping operations, and the dot我看到了,但我不相信。 R 中的合法名称、管道操作和点
【发布时间】:2018-06-05 15:23:58
【问题描述】:

在尝试理解 Win Vector 博客中描述的基本 R“Bizarro 管道”时,我确认简单的示例在没有安装包的情况下会在 R 中产生类似管道的行为。例如:

> 2  ->.; exp(.)
[1] 7.389056

我发现点在 plyr 和 magrittr 中用作运算符。我花了几个小时在基础 R 中查找我能想到的点运算符的每个同义词,以及我知道的所有帮助工具;我什至跑了一些荒谬的正则表达式搜索。最后,无奈之下,我尝试了这个:

>. <- 27
>.
[1] 27

到目前为止,我还没有证实裸点,甚至没有 ` ` 的名称,是 R 中的有效变量名。但我仍然希望这只是一些更明智的副作用行为,记录在某处。

是吗?如果有,在哪里?

我承认,在 Win Vector 博客首次出现时,作者认为它是一个笑话。

【问题讨论】:

  • . 可用作有效的对象名称(语法上有效的名称):“语法上有效的名称由字母、数字和点或下划线字符组成,并以字母或点开头后面没有数字。” (来自make.names 的手册)。单点满足“后面不跟数字的点”。
  • 另请注意,这不是新的。自 2005 年起在 CRAN 上的 proto 包使用文档中的约定,即 dot 是当前对象,以便可以使用 .$x 紧凑地引用当前对象中的变量 x 。 (用户也可以使用任何其他名称——this 可能是一个常见的替代名称。)
  • 我不会称之为类似管道的行为,最后只是将两个命令放在一行上,基本上就像在两个单独的行上放置 x &lt;- 2exp(x) 一样。 (是的,你也可以做类似a &lt;- 2 -&gt; b 的事情,但这些实际上只是作业)
  • @mt1022 你能发帖回答吗?
  • @Moody_Mudskipper,感谢您的善意提醒。没想到这个问题会引起这么多关注。我按照您的建议做了并添加了相应的链接。希望这对现在更有帮助。

标签: r pipe operators naming-conventions pipeline


【解决方案1】:

. 可用作有效的对象名称(语法上有效的名称)并在此处记录:

语法上有效的名称由字母、数字和点或 下划线字符并以字母或不跟随的点开头 按数字。”(来自make.names 的手册)。

单点满足“不跟数字的点”。

【讨论】:

    猜你喜欢
    • 2023-03-29
    • 2022-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多