# create a list of all installed packages
ip <- as.data.frame(installed.packages())
head(ip)
# if you use MRO, make sure that no packages in this library will be removed
ip <- subset(ip, !grepl("MRO", ip$LibPath))
# we don't want to remove base or recommended packages either\
ip <- ip[!(ip[,"Priority"] %in% c("base", "recommended")),]
# determine the library where the packages are installed
path.lib <- unique(ip$LibPath)
# create a vector with all the names of the packages you want to remove
pkgs.to.remove <- ip[,1]
head(pkgs.to.remove)
# remove the packages
sapply(pkgs.to.remove, remove.packages, lib = path.lib)
6条答案
按热度按时间4ngedf3f1#
小心!在你尝试这个之前阅读文档:
默认情况下,这将从
.libPaths()
中的第一个库中删除包。否则,您可以为remove.packages()
指定以下参数:f1tvaqid2#
而不是
更新到R 3.0.0,并且必须重新构建所有软件包。
就做
这就是我在R3.0.0上所做的(使用
lib.loc=...
指向不同的本地目录)。这将更新您拥有的所有内容 *,并且它仍然可以从repos *(如CRAN)中获取。对于install_git()
等,你运气不好,需要重新安装。但无论哪种方式,您都不需要首先删除软件包。
wmomyfyw3#
接受的答案不再起作用(R 3.6.X),但这个答案起作用:
我们使用
checkBuilt=T
,因为它检查包是否是在旧版本下构建的,需要重新构建(有时)。我们使用
ask=F
,因为否则我们会得到每个包的提示,这很烦人。hjzp0vay4#
以下是R-Blogger中可用的解决方案:
以下是原始文章的链接:https://www.r-bloggers.com/how-to-remove-all-user-installed-packages-in-r/
1l5u6lss5#
如果在Linux上,最简单的方法可能是删除库文件夹,默认情况下,该文件夹位于
/home/yourusername/R
中。例如,在Fedora上,它被称为
x86_64-redhat-linux-gnu-library
。如果文件夹/home/yourusername/R/x86_64-redhat-linux-gnu-library
被删除,它将在以下R开头自动重新创建。所有默认库都定期可用。c0vxltue6#
警告,您将删除大量内容
有时卸载包不起作用,在这种情况下,您可能需要删除包的文件夹。这可以从R中完成,假设您有权限。
您可以通过以下方式预览要删除的路径:
此呼叫: