从存储库中查找R包的二进制版本号

f87krz0w  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(91)

如果我使用old.packages(),这将给予我一个包含软件包在仓库中的实际版本的框架。然而,这是必须编译的软件包的版本。有没有一种简单的方法来获得二进制版本的信息?
背景资料:我想比较我安装的软件包的版本,并将它们与软件包的二进制版本的最新版本进行比较。据我所知(也是我的经验),在Windows机器上安装二进制软件包不太容易出错。

vlf7wbxs

vlf7wbxs1#

这应该会让你得到一个Windows二进制文件的列表,这些二进制文件可用于特定R主要版本的特定存储库:

repo <- "http://cran.r-project.org"
r_major <- gsub("\\.[0-9]*$", "", as.character(getRversion()))
url <- sprintf("%s/bin/windows/contrib/%s", repo, r_major)
rr <- readLines(url)
pkglines <- grep("\\.zip", rr, value = TRUE)
pkgs <- gsub("^.*>([[:alpha:]0-9.]*_[0-9.-]+\\.zip)<.*$", "\\1", pkglines)

个字符
在这里,你可以使用strsplit/gsub等删除.zip扩展,并将软件包名称和版本号分开。
正如@MrFlick建议的那样,old.packages(type="binary")可能已经做了你想做的事情。
(It阅读https://cran.r-project.org/bin/windows/contrib/4.3/PACKAGES并从那里开始实际上会更好/更容易--比试图拆开HTML更容易...)

相关问题