【发布时间】:2012-01-11 23:42:11
【问题描述】:
我查看了update.packages(..., checkBuilt = TRUE) 的帮助,但我不清楚为什么不想将TRUE 作为默认设置。默认为FALSE。
这个问题有两个部分。 (1) 有人可以对FALSE 或TRUE 的使用这个论点和理由给出一个明确的解释吗?
据我了解,如果更新 R,那么这可能会产生不同的结果 - 如果软件包尚未更新,那么 FALSE 不会导致本地库被更新的软件包修改,而 TRUE将导致更多(全部?)包被更新。默认选项 (FALSE) 可能会带来速度优势 - 将更新更少的包。稳定性是不确定的——新版本的 R 可能会更好地与新包一起使用,也可能不会(例如,如果新包中存在回归/错误),它可能会或可能不会与早期版本的包一起使用(不保证向后兼容性)。其他优点和缺点对我来说并不明显。 (我在这里可能完全误会了 - 这就是为什么我要求在第 1 部分进行澄清。)
(2) 但是,如果没有更改已安装的 R 版本,那么这些结果不应该相同吗?请参阅 this post 的示例,其中似乎只是调用 update.packages() 会产生问题,即使 R 的版本没有改变。
【问题讨论】:
-
不是答案,但这是我的猜测:
checkBuilt参数是在 r31400 (2004) 中引入的,另请参见 cran.r-project.org/bin/windows/base/old/2.1.0/NEWS.rw2010 。当时,使用默认FALSE引入参数意味着默认行为没有改变,这对我来说似乎是最明智的。据我所知,默认值之后就再也没有改变过。另外,我猜 R 核心可能不愿意这样做,因为可能需要一个类似于宣布不推荐使用的功能的长公告(并且会引起毫无戒心的用户的数千个问题......) -
@cbeleites 感谢您的回复!如您所知-您是我链接到的帖子的作者,所以我希望您能提供更多背景信息。 :) 我理解这种不愿改变的态度——这似乎是对原始默认值及其持久性的合理解释。所以,目前,我想知道用户是否应该覆盖默认值。
-
Sou,你可以很容易地覆盖默认值。虽然我认为
update.packages的努力不值得(我更经常地这样做是为了将print包裹在基于网格的绘图周围——尽管Sweave也不再需要这样做了(RweaveLatex) 选项print = TRUE)。然后更新包比降级要容易得多。
标签: r installation