繁体   English   中英

得:`.packages()`vs`(.packages())`

[英]R gotcha: `.packages()` vs `(.packages())`

我把这个包裹着头:

> .packages()
> (.packages())
[1] "stats"     "graphics"  "grDevices" "utils"     "datasets"  "methods"   "base"

第一个命令什么都不输出,而第二个命令可行? 我想这是R的另一个语法陷阱。

.packages的帮助页面

 ‘.packages()’ returns the names of the currently attached packages
 _invisibly_ whereas ‘.packages(all.available = TRUE)’ gives
 (visibly) _all_ packages available in the library location path
 ‘lib.loc’.

阅读invisible的帮助页面以获取更多信息,但是基本上,如果某些内容被隐式返回,则它将不会自动打印。 它仍然会存在,因此您可以将其存储到默认情况下不会显示的对象中。 这是其他一些例子

> 3
[1] 3
> invisible(3)
> x <- invisible(3)
> x
[1] 3

我们看到,以不可见的形式包裹时,“ 3”不会自动打印。 即使它不可见,我们仍然可以将其存储到对象中。

编辑:请注意,当解释器将自动打印结果时,仅使用不可见将掩盖打印。 我们可以强制使用print或几乎任何其他函数调用来打印(其中(作为函数,这就是为什么将命令用括号括起来打印结果的原因)。

> invisible(3) + 0
[1] 3
> I(invisible(3))
[1] 3
> (invisible(3))
[1] 3
> print(invisible(3))
[1] 3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM