如何删除除base
和recommended
以外的所有已安装软件包?
答案 0 :(得分:18)
小心!在尝试之前阅读文档:
# Pasted as a commented to prevent blindly copying and pasting
# remove.packages( installed.packages( priority = "NA" )[,1] )
默认情况下,这会从.libPaths()
中的第一个库中删除包。
答案 1 :(得分:13)
而不是
已更新至R 3.0.0并且必须重建所有软件包。
只是做
update.packages(..., checkBuilt=TRUE)
这是我在R 3.0.0上所做的(使用lib.loc=...
指向我的不同本地目录)。这将更新您拥有的所有以及它仍可从repos 获得的内容,例如CRAN。对于install_git()
等,您运气不好,需要重新安装。
但无论如何,不都需要先删除软件包。
答案 2 :(得分:5)
已接受的答案不再起作用(R 3.6.X),但是此答案有效:
update.packages(checkBuilt = T, ask = F)
我们使用checkBuilt=T
是因为这会检查软件包是否是在旧版本下构建的,并且需要重新构建(有时)。
我们使用ask=F
是因为否则我们会收到每个令人讨厌的包裹的提示。
答案 3 :(得分:1)
如果在Linux上,最简单的方法可能是删除库文件夹,默认情况下该文件夹位于/home/yourusername/R
。
例如,在Fedora上,它被称为x86_64-redhat-linux-gnu-library
。
如果删除了文件夹/home/yourusername/R/x86_64-redhat-linux-gnu-library
,则会在下一个R开始时自动重新创建它。所有默认库都是定期可用的。
答案 4 :(得分:0)
以下是R-Blogger中可用的解决方案:
# 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)
以下是原始帖子的链接:https://www.r-bloggers.com/how-to-remove-all-user-installed-packages-in-r/
答案 5 :(得分:0)
警告,您将删除很多东西
有时无法卸载软件包,在这种情况下,您可能要删除软件包的文件夹。假设您具有权限,可以从R完成此操作。
sapply(paste(installed.packages( priority = "NA" )[, 2], installed.packages( priority = "NA" )[, 1], sep = "/"), unlink, recursive = T)
您可以预览要删除的路径:
sapply(paste(installed.packages( priority = "NA" )[, 2], installed.packages( priority = "NA" )[, 1], sep = "/"), identity)
此电话: