reverse
for get_dep()
and
get_graph_all_packages()
, & remove scrape
for the former.cran_url()
, html_text_vec()
and
already deprecated get_dep_df()
&
get_dep_all()
.|>
in
check_dep_word()
& get_dep_vec()
.obtain_u_set_mix2_constrained()
for constrained
version of obtain_u_set_mix2()
. This assumes power law in
the body i.e. theta = 1.0, and (1.0 / xi + 1.0) > alpha > 1.0, and
“continuity” at the threshold u.constrained
in
mcmc_mix2()
& mcmc_mix2_wrapper()
&
lpost_mix2()
to accommodate this constrained version.xmax
to x_max
for
consistency.invts
in mcmc_*_wrapper()
is set to 1.0 for no Metropolis coupling or power posterior.u_max
(and v_max
if
applicable) with defaults in mcmc_mix*_wrapper()
.mcmc_pol()
(for the polylog distribution) and
mcmc_mix2()
(for the 2-component mixture distribution). The
combination of the existing argument invt
for inverse
temperatures and the new boolean argument mc3_or_marg
determines either parallel tempering or power posterior or neither will
be performed.marg_pow()
for calculating the posterior density
and marginal (log-)likelihood of the discrete power law i.e. the Zipf
distribution.update()
in C++ in preparation for marginal
log-likelihood calculations for other models (Zipf-polylog, mixtures,
etc.)marg_pow()
added to align with
mcmc_pol()
(when theta = 1.0) in terms of posterior
density.name
has been removed in the wrapper
functions as it required data frames with a specific column
name
.obtain_u_set_mix2()
or
obtain_u_set_mix3()
.s_alpha
in
mcmc_mix3_wrapper()
is changed from 0.0 to 10.0.obtain_u_set_mix3()
, whether there is data between v
& u is checked before optimisation. This prevents a warning when the
“Brent” method is used (when only alpha is optimised as theta is fixed
to 1.0), when there’s no data points between v & u.dpol()
& Spol()
, the check for
alpha <= 1.0 is made only when theta == 1.0 i.e. the power law
applies.obtain_u_set_mix2()
and
obtain_u_set_mix3()
, which are functions for obtaining the
profile posterior density for the 2-component and 3-component mixture
models, respectively.mcmc_pol()
,
mcmc_mix2()
and mcmc_mix3()
, all with the
suffix _wrapper
. Specifically,
mcmc_mix2_wrapper()
calls obtain_u_set_mix2()
and mcmc_mix2()
, and mcmc_mix3_wrapper()
calls
obtain_u_set_mix3()
and mcmc_mix3()
.dupp()
and mcmc_upp()
are replaced by
dpol()
and mcmc_pol()
, respectively, to
facilitate a generalisation of the discrete power law, namely the
Zipf-polylog distribution.dmix()
and mcmc_mix()
are replaced by
dmix2()
and mcmc_mix2()
, respectively, with a
new parametrisation, for the 2-component mixture distribution.dmix3()
and mcmc_mix3()
are added for the
3-component mixture distribution.get_dep()
, html_text_vec()
and
get_dep_all_packages()
now return an error message if
Internet resources are not available.The previous functionality of get_dep()
is replaced
by that of get_dep_df()
, while get_dep_df()
is
soft deprecated. This means the former is the single function for
obtaining dependencies in a non-igraph object.
The argument type
in get_dep()
and
get_graph_all_packages()
now allows Enhances
and Reverse enhances
as the value. These two kind of
dependencies are also included in the data frame obtained using
get_dep_all_packages()
.
Examples in internal functions html_text_vec()
,
get_dep_str()
and get_dep_vec()
removed to
minimise the errors due to no internet connection and/or
timeout.
Multiple dependencies are now allowed in the type
argument in get_graph_all_packages()
.
Arguments give_log
in dupp()
&
dmix()
changed to log
without changing the
functionality. For uniformity, Supp()
&
Smix()
are also given the additional argument
log
.
The ordering of arguments in the funcions *mix()
is
made consistent.
For the vignette on dependencies of all CRAN packages, community detection is added.
Replace https://cran.r-project.org/web/packages/available_packages_by_name.html by https://cran.r-project.org, in the dependency network vignette, to prevent NOTE on possibly invalid URL.
In the vignette on modelling the number of reverse dependencies, a section on fitting extreme value mixture distribution is added.
Added is a citation network of the CHI conference papers, that can serve as a comparison to the CRAN dependency network, in terms of network summaries and characteristics, such as degree distribution.
Replace
https://cran.r-project.org/web/packages/available_packages_by_name.html
by https://cran.r-project.org, in the manual of
cran_dependencies
, to prevent NOTE on possibly invalid
URL.
get_dep_all_packages()
and
get_graph_all_packages()
: The former is for a data frame of
all dependencies of all CRAN packages, while the latter is for the graph
of one type of depenedencies of all CRAN packages.
get_dep()
replaces get_dep_all()
, with
the same functionality. get_dep()
gets soft
deprecated.
The argument type
in get_dep()
and
types
in get_dep_df()
allows input more
flexibility. For reverse dependencies, either space or underscore is
accepted for separating the words
e.g. type = "reverse suggests"
or
type = "reverse_suggests"
.
The argument types
in get_dep_df()
allows (as before) a character vector of dependency words. Also allowed
now is types = "all"
which means all of the four
dependencies (depends, suggests, imports, linking to) and their reverse
counterparts.
Previously, there were issues with string manipulation for some
packages without scraping. This is because, when using
tools::CRAN_package_db()
, there might be no space between
the package name and the left parenthesis for the version. This is not
an issue if scrape = TRUE
as there is always a space on the
CRAN page.
In the output of get_dep_df()
and
get_dep_all_packages()
, any LinkingTo
and
Reverse linking to
dependencies will become “linking to”
(“linking_to” previously) in the variable type
, with
“FALSE” and “TRUE” in the variable reverse
, respectively.
This is also updated in the data
cran_dependencies
.
The sections on obtaining dependencies of all CRAN packages is
now moved to a new vignette. In this vignette, we also provide
interactive visualisation of the network of Depends
of all
packages.
The degree modelling vignette is now for Imports
network, not Depends
network. In addition to discrete power
law, a discrete extreme value mixture distribution is also used to model
the same data set.
dupp()
and Supp()
: density and survival
functions, respectively, of the discrete power law (above a
threshold).mcmc_upp()
: fitting the discrete power law (above a
threshold) to data using Markov chain Monte Carlo (MCMC).dmix()
, Smix()
: density and survival
functions, respectively, of a discrete extreme value mixture
distribution.mcmc_mix()
: fitting the discrete extreme value mixture
distribution to data using MCMC.get_dep_all()
and
get_dep_df()
: scrape = TRUE
is the same as
previous version, while scrape = FALSE
means
tools::CRAN_package_db()
(thanks to Dirk Eddelbuettel (#1))
will be used instead. Note that changing this argument should still give
the same result; the main difference is the time taken.