如果我使用old.packages(),这将给予我一个包含软件包在仓库中的实际版本的框架。然而,这是必须编译的软件包的版本。有没有一种简单的方法来获得二进制版本的信息?背景资料:我想比较我安装的软件包的版本,并将它们与软件包的二进制版本的最新版本进行比较。据我所知(也是我的经验),在Windows机器上安装二进制软件包不太容易出错。
old.packages()
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更容易...)
strsplit
gsub
.zip
old.packages(type="binary")
https://cran.r-project.org/bin/windows/contrib/4.3/PACKAGES
1条答案
按热度按时间vlf7wbxs1#
这应该会让你得到一个Windows二进制文件的列表,这些二进制文件可用于特定R主要版本的特定存储库:
个字符
在这里,你可以使用
strsplit
/gsub
等删除.zip
扩展,并将软件包名称和版本号分开。正如@MrFlick建议的那样,
old.packages(type="binary")
可能已经做了你想做的事情。(It阅读
https://cran.r-project.org/bin/windows/contrib/4.3/PACKAGES
并从那里开始实际上会更好/更容易--比试图拆开HTML更容易...)