这是一个反复出现的问题。
我已经多次遇到过这个问题。最烦人的是当它发生在一堆包中时;例如,我做了一些类似的事情
update.packages(ask = FALSE)得到一些这样的错误。但是,这个错误是误导的,因为R倾向于实际上删除了旧的包版本的--但是没有安装新的版本。一旦发生这种情况,您就无法用update.packages修复它;您必须从头开始重新安装它。
这个问题最令人沮丧的方面是,它经常发生在安装依赖项时,例如,我可能成功地更新dplyr,但在此过程中Rcpp被删除。现在我无法加载dplyr,因为Rcpp丢失了,所以我需要重新安装Rcpp。
我当前的解决方法(当卸载包的数量很大时)是关闭所有的R会话,使用基本的RTVS打开一个新的会话(即不是RStudio或RTVS),然后执行以下操作
lapply(dir(.libPaths()), install.packages)恢复了我的整个图书馆。这太过分了。
是否有更好的方法来检查.libPaths() 中哪些文件夹实际包含包,以便我只重新安装丢失的包?
或者:是否有更好的方法来检查丢失的包是否有缺陷?
发布于 2018-02-13 19:33:30
一种策略是做
setdiff(dir(.libPaths()), .packages(all = TRUE))以获取库中似乎不实际包含包的目录列表。现在,我要重新安装的软件包列表要小得多。
我不知道这是不是万无一失,但它比重新安装我的整个库好。
https://stackoverflow.com/questions/48773148
复制相似问题