R gotcha:`.packages()`vs`(。package())`

时间:2014-07-10 13:08:39

标签: r

我围绕着这个问题:

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

第一个命令怎么可能没有输出,第二个命令有效?我想这是R的另一种语法问题。

1 个答案:

答案 0 :(得分:5)

.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

我们看到当被包裹在看不见的时候&#34; 3&#34;没有自动打印。我们仍然可以将它存储到一个对象中,即使它不可见。

编辑:请注意,使用隐形只会在解释器自动打印结果时屏蔽打印。我们可以强制它使用print或几乎任何其他函数调用进行打印(其中(计为函数,这就是为什么在括号中包装命令会打印结果)。

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