gpt4 book ai didi

R 陷阱 : `.packages()` vs `(.packages())`

转载 作者:行者123 更新时间:2023-12-01 19:34:18 28 4
gpt4 key购买 nike

我正在思考这个问题:

> .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

关于R 陷阱 : `.packages()` vs `(.packages())` ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24677402/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com