如何获得给定软件包所需的R的最低版本?

如何获得给定软件包所需的R的最低版本?,r,R,如何检查软件包列表需要哪个版本的R?理想的情况是这样 minimumRVersion <- function(packageList = c(), return=c("list", "min", "mine")) { # code to collate a list of minimum versions of R # required for the listed packages. # Optionally return min(list) or "is my R high enoug

如何检查软件包列表需要哪个版本的R?理想的情况是这样

minimumRVersion <- function(packageList = c(), return=c("list", "min", "mine")) {
# code to collate a list of minimum versions of R
# required for the listed packages.
# Optionally return min(list) or "is my R high enough?
return(result) 
}

minVersion("RcppEigen")
# 2.15.1

minVersion(c("RcppEigen","OpenMx"), "min")
# 3.0

minimumrvision您可以使用
packageDescription
功能,该功能允许您获取软件包要求

我写了一个快速而肮脏的解决方案,请随意改进

minimumRVersion <- function(packageList)
  {
  requirements <- NULL

  for (p in packageList)
    {
    # Get dependencies for the package
    dep <- packageDescription(p, fields = "Depends")

    if (!is.na(dep))
      {
      # dep will be something like:
      # "R (>= 3.1.0), grDevices, graphics, stats, utils"
      # split by comma
      dep <- unlist(strsplit(dep, ","))
      # Find requirement for R (may not exist)
      r.dep <- dep[grep("R \\(", dep)]
      if (!length(r.dep))
          r.dep <- NA
      }
    else
          r.dep <- NA

    requirements <- c(requirements, r.dep)
    }

  requirements
  }
返回:

[1] " R (>= 3.0.0)" "R (>= 3.1.0)" " R (>= 2.10.0)" "R (>= 3.0.2)"  NA              

可能需要将其改为“How can get…”以避免作为包请求关闭。(提示:您可能只需要更改标题,其余看起来没问题)很好,我假设
可用。包
,但限制为已安装的包是有意义的。顺便说一句:您应该检查
is.na(dep)
(对于没有列出依赖项的pkg)。
[1] " R (>= 3.0.0)" "R (>= 3.1.0)" " R (>= 2.10.0)" "R (>= 3.0.2)"  NA