В чем преимущество использования библиотеки ('tidyverse') вместо подпакетов? - PullRequest
0 голосов
/ 09 мая 2018

Мне было интересно, что может повлиять на большое приложение R (shiny), если мы назовем пакет tidyverse. Мы обычно звоним dplyr, tidyr и так далее по отдельности. Любые намеки приветствуются!

Заранее спасибо!

1 Ответ

0 голосов
/ 09 мая 2018

Обновление: по состоянию на 12 июня 2019 года количество рекурсивных зависимостей теперь достигло 94.

Пакет 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] "digest"       "dplyr"        "ellipsis"    
# [19] "evaluate"     "fansi"        "forcats"     
# [22] "fs"           "generics"     "ggplot2"     
# [25] "glue"         "graphics"     "grDevices"   
# [28] "grid"         "gtable"       "haven"       
# [31] "highr"        "hms"          "htmltools"   
# [34] "httr"         "jsonlite"     "knitr"       
# [37] "labeling"     "lattice"      "lazyeval"    
# [40] "lubridate"    "magrittr"     "markdown"    
# [43] "MASS"         "Matrix"       "methods"     
# [46] "mgcv"         "mime"         "modelr"      
# [49] "munsell"      "nlme"         "openssl"     
# [52] "pillar"       "pkgconfig"    "plogr"       
# [55] "plyr"         "prettyunits"  "processx"    
# [58] "progress"     "ps"           "purrr"       
# [61] "R6"           "RColorBrewer" "Rcpp"        
# [64] "readr"        "readxl"       "rematch"     
# [67] "reprex"       "reshape2"     "rlang"       
# [70] "rmarkdown"    "rstudioapi"   "rvest"       
# [73] "scales"       "selectr"      "splines"     
# [76] "stats"        "stringi"      "stringr"     
# [79] "sys"          "tibble"       "tidyr"       
# [82] "tidyselect"   "tinytex"      "tools"       
# [85] "utf8"         "utils"        "vctrs"       
# [88] "viridisLite"  "whisker"      "withr"       
# [91] "xfun"         "xml2"         "yaml"        
# [94] "zeallot"  
...