r - 使用 library('tidyverse') 而不是子包有什么好处?
问题描述
我想知道如果我们调用package.json 会对大型R
( ) 应用程序产生什么影响。我们通常分别调用, , 等等。欢迎任何提示!shiny
tidyverse
dplyr
tidyr
提前致谢!
解决方案
更新:截至 2020 年 5 月 14 日,递归依赖计数现在高达 101。
该tidyverse
包目前有 87 个依赖项。
- 加载所有这些会稍微增加应用程序的启动时间,
- 如果您正在使用
packrat
,您现在必须在本地库中保存 87 个包的副本。如果您不使用packrat
,则可能会在 6 个月内更新某些内容并破坏您闪亮的应用程序。
如果您完全关心性能并长期维护此应用程序,我建议您尽量减少依赖关系并仅加载您实际使用的包。
sort(tools::package_dependencies(package="tidyverse", recursive=TRUE)$tidyverse)
# [1] "askpass" "assertthat" "backports"
# [4] "base64enc" "BH" "broom"
# [7] "callr" "cellranger" "cli"
# [10] "clipr" "colorspace" "crayon"
# [13] "curl" "DBI" "dbplyr"
# [16] "desc" "digest" "dplyr"
# [19] "ellipsis" "evaluate" "fansi"
# [22] "farver" "forcats" "fs"
# [25] "generics" "ggplot2" "glue"
# [28] "graphics" "grDevices" "grid"
# [31] "gtable" "haven" "highr"
# [34] "hms" "htmltools" "httr"
# [37] "isoband" "jsonlite" "knitr"
# [40] "labeling" "lattice" "lifecycle"
# [43] "lubridate" "magrittr" "markdown"
# [46] "MASS" "Matrix" "methods"
# [49] "mgcv" "mime" "modelr"
# [52] "munsell" "nlme" "openssl"
# [55] "pillar" "pkgbuild" "pkgconfig"
# [58] "pkgload" "plogr" "plyr"
# [61] "praise" "prettyunits" "processx"
# [64] "progress" "ps" "purrr"
# [67] "R6" "RColorBrewer" "Rcpp"
# [70] "readr" "readxl" "rematch"
# [73] "reprex" "reshape2" "rlang"
# [76] "rmarkdown" "rprojroot" "rstudioapi"
# [79] "rvest" "scales" "selectr"
# [82] "splines" "stats" "stringi"
# [85] "stringr" "sys" "testthat"
# [88] "tibble" "tidyr" "tidyselect"
# [91] "tinytex" "tools" "utf8"
# [94] "utils" "vctrs" "viridisLite"
# [97] "whisker" "withr" "xfun"
# [100] "xml2" "yaml"