我维护着一个小的R包,但是这个问题可以更广泛地理解为“需要”哪些包才能运行某些任意功能。当我的包裹开始未能通过rhub
检查devel分支时,我变得很感兴趣。报告data.table
不可用。不必担心我,我相信他们会解决这个问题。 但是,我不会导入,建议或增强该软件包,所以为什么会失败。显然,其他一些软件包也需要它。手动尝试梳理描述文件非常费力,坦率地说是徒劳的。
我去看了一下,发现miniCRAN
似乎使我很熟悉。一点点purrr
的魔力,我可以向它提供我需要的软件包列表,然后看看会回来什么。 我实际上很惊讶,将描述文件与我从未知道的结果进行比较。
我的问题是,我是否缺少明显的东西?将来有没有更快,更有效的方法来回答此类问题?谢谢。
library(miniCRAN)
library(purrr)
package_list <- c("BayesFactor",
"broom",
"car",
"DescTools",
"dplyr",
"forcats",
"ggmosaic",
"ggplot2",
"ggrepel",
"paletteer",
"partykit",
"purrr",
"rlang",
"sjstats",
"stringr",
"tidyr")
names(package_list) <- package_list
purrr::map(package_list, ~ grep(pattern = "data.table",
value = TRUE,
x = pkgDep(.,
includeBasePkgs = FALSE,
suggests = TRUE,
enhances = FALSE)
)
)
#> $BayesFactor
#> character(0)
#>
#> $broom
#> [1] "data.table"
#>
#> $car
#> [1] "data.table"
#>
#> $DescTools
#> character(0)
#>
#> $dplyr
#> character(0)
#>
#> $forcats
#> character(0)
#>
#> $ggmosaic
#> [1] "data.table"
#>
#> $ggplot2
#> [1] "data.table"
#>
#> $ggrepel
#> character(0)
#>
#> $paletteer
#> character(0)
#>
#> $partykit
#> [1] "data.table"
#>
#> $purrr
#> character(0)
#>
#> $rlang
#> character(0)
#>
#> $sjstats
#> [1] "data.table"
#>
#> $stringr
#> character(0)
#>
#> $tidyr
#> character(0)