我正在寻找一种流畅的方法,以获取软件包的Imports:
和Depends:
软件包。诀窍是该方法应该工作,无论软件包是否为
- 已安装或刚加载
devtools::load_all()
或 - 附加或仅通过命名空间可用。
所需功能:
package_deps("dplyr")
## [1] "assertthat" "bindrcpp" "glue" "magrittr" "methods" "pkgconfig"
## [7] "rlang" "R6" "Rcpp" "tibble" "utils"
请注意,版本号都被剥夺了。
我正在写这篇文章,因为似乎已经存在。(毕竟,install.packages()
需要类似的功能。)我宁愿自己管理所有特殊情况。
我维护的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"