列出包的依赖项,无论它是如何加载或安装的

lan*_*dau 3 r r-package

我正在寻找一种巧妙的方法来以编程方式获取包的Imports:Depends:包。诀窍在于,无论包是否存在,该方法都应该有效

  1. 安装或刚刚加载devtools::load_all(),或
  2. 附加或仅通过名称空间可用。

所需功能:

package_deps("dplyr")
## [1] "assertthat" "bindrcpp"   "glue"       "magrittr"   "methods"    "pkgconfig" 
## [7] "rlang"      "R6"         "Rcpp"       "tibble"     "utils" 
Run Code Online (Sandbox Code Playgroud)

请注意,版本号已全部被删除。

我写这篇文章是因为它似乎应该已经存在。(毕竟,install.packages()需要类似的功能。)我宁愿不必自己管理所有特殊情况。

Tyl*_*ker 7

我维护的 pacman 包是这样做的:

if (!require("pacman")) install.packages("pacman")
pacman::p_depends(dplyr)

$Imports
 [1] "assertthat" "bindrcpp"   "glue"       "magrittr"   "methods"   
 [6] "pkgconfig"  "rlang"      "R6"         "Rcpp"       "tibble"    
[11] "utils"     

$LinkingTo
[1] "Rcpp"     "BH"       "bindrcpp" "plogr"   

$Suggests
 [1] "bit64"          "covr"           "dbplyr"         "dtplyr"        
 [5] "DBI"            "ggplot2"        "hms"            "knitr"         
 [9] "Lahman"         "mgcv"           "microbenchmark" "nycflights13"  
[13] "rmarkdown"      "RMySQL"         "RPostgreSQL"    "RSQLite"       
[17] "testthat"       "withr"         
Run Code Online (Sandbox Code Playgroud)