首页 > 解决方案 > 使用 library('tidyverse') 而不是子包有什么好处?

问题描述

我想知道如果我们调用package.json 会对大型R( ) 应用程序产生什么影响。我们通常分别调用, , 等等。欢迎任何提示!shinytidyversedplyrtidyr

提前致谢!

标签: rshinytidyverse

解决方案


更新:截至 2020 年 5 月 14 日,递归依赖计数现在高达 101。

tidyverse包目前有 87 个依赖项。

  1. 加载所有这些会稍微增加应用程序的启动时间,
  2. 如果您正在使用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"  

推荐阅读