【发布时间】: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 <- 2和exp(x)一样。 (是的,你也可以做类似a <- 2 -> b的事情,但这些实际上只是作业) -
@mt1022 你能发帖回答吗?
-
@Moody_Mudskipper,感谢您的善意提醒。没想到这个问题会引起这么多关注。我按照您的建议做了并添加了相应的链接。希望这对现在更有帮助。
标签: r pipe operators naming-conventions pipeline