vignettes/deepdep-comparison.Rmd
deepdep-comparison.Rmd
There are a few already existing solutions to the problem of visualizing dependencies. In this last section, we will compare deepdep
to those solutions.
This solutions are (with links to their GitHub repositories):
First and foremost, our package is the only one that uses ggplot2
and its enhancements, which is currently the most popular way of visualizing anything in R. You can easily modify plots generated with our package.
Secondly, we are trying to keep plots clear and tidy. We’re rather showing general structure of dependencies, their density and also show, which of the dependencies are the most crucial.
At last, deepdep
function is able to show levels of dependencies, which is not true for other packages listed here – they either show only first-level dependencies or all possible dependencies
In the following sections we’ll describe why our package is better in some aspects than others, but also features that we’re lacking.
This package allows creating interactive graphs (using visNetwork
) to visualize dependencies between packages and also between functions in those packages.
#> an example from the website on github.io library(devtools, quietly = TRUE) install_github("datastorm-open/DependenciesGraphs") library(DependenciesGraphs, quietly = TRUE) # you mus first loaded the target package using library library(plyr,quietly = TRUE) dep <- Pck.load.to.vis("plyr") plot(dep)
Tool for obtaining information on specified package, especially plotting network of package and function dependencies.
visNetwork
.#> opens a report library(pkgnet) result <- CreatePackageReport('ggplot2')
From README.md on Github:
The miniCRAN package makes it possible to create an internally consistent repository consisting of selected packages from CRAN-like repositories. The user specifies a set of desired packages, and miniCRAN recursively reads the dependency tree for these packages, then downloads only this subset.
#> an example from official vignette library(miniCRAN, quietly = TRUE) tags <- "chron" pkgDep(tags, availPkgs = cranJuly2014) #> [1] "chron" "RColorBrewer" "dichromat" "munsell" "plyr" #> [6] "labeling" "colorspace" "Rcpp" "digest" "gtable" #> [11] "reshape2" "scales" "proto" "MASS" "stringr" #> [16] "ggplot2" dg <- makeDepGraph(tags, enhances = TRUE, availPkgs = cranJuly2014) set.seed(1) plot(dg, legendPosition = c(-1, 1), vertex.size = 20)
# pkgDepTools
Description from official vignette:
The pkgDepTools package provides tools for computing and analysing dependency relationships among R packages. With it, you can build a graph-based representation of the dependencies among all packages in a list of CRAN-style package repositories. There are utilities for computing installation order of a given package and, if the RCurl package is available, estimating the download size required to install a given package and its dependencies.
graphNEL
– not very commonly used and thus not so obvious to modify or adjust.#> code not evaluated due to very long execution time library(pkgDepTools) library(Rgraphviz) graph <- makeDepGraph("http://cran.fhcrc.org", type="source") plot(graph)