如何在R中获取用户安装的软件包列表以及其版本号?
我知道使用installed.packages()
命令可以获得有关所有包(基础或非基础)的信息。但是我们如何获取用户安装的软件包,以获得类似以下内容:
Package Version
X 3.01
Y 2.0.1
Z 1.0.2
对于所有用户安装的包(即通过install.packages("X")
安装的包)
ip = as.data.frame(installed.packages()[,c(1,3:4)])
ip = ip[is.na(ip$Priority),1:2,drop=FALSE]
ip
str(allPackage <- installed.packages(.Library, priority = "high")); allPackage [, c(1,3:5)]
。它提供了一个非常不同的软件包列表。"ref"链接没有解释任何内容。 - Rich Lysakowski PhD我找到了另一种不需要编写代码就可以查看软件包列表的方法:
帮助 --> R 帮助
(在上面的菜单中)参考 --> 软件包
就是这样。
或者
帮助 --> Html 帮助
参考 --> 软件包
str(allPackage <- installed.packages(.Library, priority = "high"))
allPackage [, c(1,3:5)]
您将获得所有已激活的套餐列表
这是我的解决方案。
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"))
如果我开发一个应用程序或模型,想要记录使用的包版本,我会调用sessionInfo()
。
sessionInfo()
展示了已经附加和加载的包,这是机器上安装的包的子集,因此它回答了不同的问题。当然,sessionInfo()
无法帮助管理员枚举其他用户安装的软件包(因为他们的会话并没有激活)。请注意不改变原来的意思。 - wibeasleysessionInfo()
在保存依赖文件时非常有用。这是我使用该函数的主要目的,而不是从管理员的角度来看。 - Seanosapien一个技巧是使用library()
,会弹出一个包含所有软件包的窗口
x <- installed.packages(); x[ is.na(x[,"Priority"]), c("Package", "Version")]
。这将返回已安装的包中优先级为空的包名和版本号。 - zx8754