![](/img/trans.png)
[英]R: Avoiding installing loaded packages vs avoiding installing attached 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.