获取R语言中每个用户已安装的软件包列表

89

如何在R中获取用户安装的软件包列表以及其版本号?

我知道使用installed.packages()命令可以获得有关所有包(基础或非基础)的信息。但是我们如何获取用户安装的软件包,以获得类似以下内容:

Package    Version
X          3.01
Y          2.0.1
Z          1.0.2

对于所有用户安装的包(即通过install.packages("X")安装的包)


也许有用的内容:http://r.789695.n4.nabble.com/List-of-default-packages-that-come-with-R-td4661857.html - user20650
7
这是我在谷歌搜索“安装的R用户包”后得到的第一个链接:http://www.r-bloggers.com/list-of-user-installed-r-packages-and-their-versions/。它恰好满足您的需求。 - StatMan
你的意思是只包括“非基础”软件包吗? - Hugh
8
尝试运行此代码:x <- installed.packages(); x[ is.na(x[,"Priority"]), c("Package", "Version")]。这将返回已安装的包中优先级为空的包名和版本号。 - zx8754
6个回答

83

ref

ip = as.data.frame(installed.packages()[,c(1,3:4)])
ip = ip[is.na(ip$Priority),1:2,drop=FALSE]
ip

4
您的回答与@Ckkhamari提供的回答有什么区别?上面的代码是:str(allPackage <- installed.packages(.Library, priority = "high")); allPackage [, c(1,3:5)]。它提供了一个非常不同的软件包列表。"ref"链接没有解释任何内容。 - Rich Lysakowski PhD

43

我找到了另一种不需要编写代码就可以查看软件包列表的方法:

  • 打开RStudio
  • 导航到帮助 --> R 帮助(在上面的菜单中)
  • 您会看到帮助面板已经打开。
  • 然后跟随,参考 --> 软件包

就是这样。


或者

  • 打开R控制台
  • 导航到 帮助 --> Html 帮助
  • 然后跟随,参考 --> 软件包

这应该是被接受的答案,它还告诉您安装包所在的目录,在已登录的用户下。 - Cristian Matthias Ambæk

14
str(allPackage <- installed.packages(.Library, priority = "high"))

allPackage [, c(1,3:5)]

您将获得所有已激活的套餐列表


10

这是我的解决方案。

tibble::tibble(
  Package = names(installed.packages()[,3]),
  Version = unname(installed.packages()[,3])
)

您甚至可以过滤一些想要显示的软件包。

pkg = tibble::tibble(
  Package = names(installed.packages()[,3]),
  Version = unname(installed.packages()[,3])
)

dplyr::filter(pkg, Package %in% c("tibble", "dplyr"))

5

如果我开发一个应用程序或模型,想要记录使用的包版本,我会调用sessionInfo()


9
sessionInfo()展示了已经附加加载的包,这是机器上安装的包的子集,因此它回答了不同的问题。当然,sessionInfo()无法帮助管理员枚举其他用户安装的软件包(因为他们的会话并没有激活)。请注意不改变原来的意思。 - wibeasley
1
sessionInfo() 在保存依赖文件时非常有用。这是我使用该函数的主要目的,而不是从管理员的角度来看。 - Seanosapien

2

一个技巧是使用library(),会弹出一个包含所有软件包的窗口


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接