0

一年多以来,我一直害怕更新我的 R 版本,因为害怕丢失“rgdal”包......当我第一次开始在我的 Mac 上使用 R 时(也许还在?),必须从源/安装无法通过 R 中的包安装程序安装。这很复杂,我不得不向比我自己更有经验的 R 用户寻求帮助,以获得这个对我来说至关重要的包。

但我最终决定我需要冒险并更新 R。我使用了以下说明:

#--run in the old version of R
setwd("C:/Temp/")
packages <- installed.packages()[,"Package"]
save(packages, file="Rpackages")

在新版本中紧随其后:

#--run in the new version
setwd("C:/Temp/")
load("Rpackages")
for (p in setdiff(packages, installed.packages()[,"Package"]))
install.packages(p)

在这篇文章中找到:

安装新版本 R 的无痛方式?

似乎奏效了(例如,我可以打开基本安装中不包含的库...包括 rgdal),但为了更好地理解整个过程,我有以下问题:

1)是不是在遵循这种方法时,我基本上保存了我以前在旧版本中安装的所有 R 包的列表,然后(从新版本中)确定了与集合不同的包集新版本中的基本库并告诉 R 安装属于此 SET 的包?

2)如果上述情况属实,那么这种方法是否不需要更新我的包(例如,通过从新版本中安装它们,安装最新版本)?

(在 .Renviron 文件或任何适当的文件中)始终在此外部目录中查找包...我想知道为什么这种方法受到某些人的青睐?是不是因为这种方法意味着在更新 R 之后一切都准备就绪(例如,如果有人愿意使用未更新的包)?我很困惑,因为如果在安装新版本的 R 之后仍然必须使用 update.packages(),这是否或多或少等于重新安装它们?有什么优势?

4)如果我确实走安装路线(而不是保存到外部目录然后更新路线),是否有我需要担心的包?R 确实给了我一个警告,表明我的四个软件包不适用于最新版本(R. 3.0.3)。我假设如果我需要使用这些包,我必须暂时恢复到旧版本的 R。这一切都正确吗?

预先感谢您的帮助!

4

1 回答 1

3

1) 是的。

2) 新安装的软件包将是最新版本,但update.packages(ask=FALSE, checkBuilt=TRUE)之后运行并没有什么坏处,只要确保一切都是最新的。

3)我没有看到有人建议这种特殊方法,尽管在R for Windows 常见问题解答中建议了一个类似的过程,包括 1)安装新版本 2)将包从旧版本的库文件夹复制到库新版本的文件夹和 2) 运行update.packages(checkBuilt=TRUE, ask=FALSE). 我认为以这种方式与installed.packages()... 方式相比没有任何明显的优势。

4) 讨论中的所有方法都仅限于 CRAN 包,因此您从例如bioconductor安装的东西将不包括在内。也不会涵盖从 CRAN 中删除的软件包,您要么必须使用旧版本的 R,要么手动构建和安装它们。

于 2014-03-09T15:04:49.470 回答