#
# Copyright (C) 2013-2018 University of Amsterdam
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
.expectedPackages <- function()
{
expected <- matrix(nrow=0, ncol=2, dimnames=list(NULL, c("Package", "Version")))
#--auto-generated
expected <- rbind(expected, c('BAS', '1.5.5'))
expected <- rbind(expected, c('BDgraph', '2.61'))
expected <- rbind(expected, c('BH', '1.72.0-3'))
expected <- rbind(expected, c('BMS', '0.3.4'))
expected <- rbind(expected, c('BSDA', '1.2.0'))
expected <- rbind(expected, c('BayesFactor', '0.9.12-4.2'))
expected <- rbind(expected, c('Bayesrel', '0.7.0.3'))
expected <- rbind(expected, c('Brobdingnag', '1.2-6'))
expected <- rbind(expected, c('DBI', '1.0.0'))
expected <- rbind(expected, c('DEoptimR', '1.0-8'))
expected <- rbind(expected, c('DPQ', '0.3-5'))
expected <- rbind(expected, c('DT', '0.13'))
expected <- rbind(expected, c('Epi', '2.38'))
expected <- rbind(expected, c('Formula', '1.2-3'))
expected <- rbind(expected, c('GPArotation', '2014.11-1'))
expected <- rbind(expected, c('GeneNet', '1.2.13'))
expected <- rbind(expected, c('HDInterval', '0.2.2'))
expected <- rbind(expected, c('Hmisc', '4.3-0'))
expected <- rbind(expected, c('IsingFit', '0.3.1'))
expected <- rbind(expected, c('IsingSampler', '0.2'))
expected <- rbind(expected, c('KernSmooth', '2.23-16'))
expected <- rbind(expected, c('LaplacesDemon', '16.1.1'))
expected <- rbind(expected, c('MASS', '7.3-51.4'))
expected <- rbind(expected, c('MCMCpack', '1.4-9'))
expected <- rbind(expected, c('MGLM', '0.2.0'))
expected <- rbind(expected, c('Matrix', '1.2-17'))
expected <- rbind(expected, c('MatrixModels', '0.4-1'))
expected <- rbind(expected, c('NetworkComparisonTest', '2.2.1'))
expected <- rbind(expected, c('NetworkToolbox', '1.3.2'))
expected <- rbind(expected, c('OpenMx', '2.14.11'))
expected <- rbind(expected, c('R.matlab', '3.6.2'))
expected <- rbind(expected, c('R.methodsS3', '1.7.1'))
expected <- rbind(expected, c('R.oo', '1.23.0'))
expected <- rbind(expected, c('R.utils', '2.9.0'))
expected <- rbind(expected, c('R6', '2.4.0'))
expected <- rbind(expected, c('RColorBrewer', '1.1-2'))
expected <- rbind(expected, c('ROCR', '1.0-7'))
expected <- rbind(expected, c('RUnit', '0.4.32'))
expected <- rbind(expected, c('Rcpp', '1.0.6'))
expected <- rbind(expected, c('RcppArmadillo', '0.9.900.3.0'))
expected <- rbind(expected, c('RcppEigen', '0.3.3.7.0'))
expected <- rbind(expected, c('RcppParallel', '5.0.1'))
expected <- rbind(expected, c('Rcsdp', '0.1.57.1'))
expected <- rbind(expected, c('Rdpack', '0.11-1'))
expected <- rbind(expected, c('RoBMA', '1.0.5'))
expected <- rbind(expected, c('Rsolnp', '1.16'))
expected <- rbind(expected, c('Rtsne', '0.15'))
expected <- rbind(expected, c('SparseM', '1.77'))
expected <- rbind(expected, c('StanHeaders', '2.19.0'))
expected <- rbind(expected, c('SuppDists', '1.1-9.4'))
expected <- rbind(expected, c('TH.data', '1.0-10'))
expected <- rbind(expected, c('TOSTER', '0.3.4'))
expected <- rbind(expected, c('TTR', '0.23-6'))
expected <- rbind(expected, c('VGAM', '1.1-4'))
expected <- rbind(expected, c('XML', '3.98-1.20'))
expected <- rbind(expected, c('abind', '1.4-5'))
expected <- rbind(expected, c('abtest', '0.2.1'))
expected <- rbind(expected, c('acepack', '1.4.1'))
expected <- rbind(expected, c('afex', '0.28-0'))
expected <- rbind(expected, c('arm', '1.10-1'))
expected <- rbind(expected, c('askpass', '1.1'))
expected <- rbind(expected, c('assertthat', '0.2.1'))
expected <- rbind(expected, c('backports', '1.1.5'))
expected <- rbind(expected, c('bain', '0.2.4'))
expected <- rbind(expected, c('base', '3.6.1'))
expected <- rbind(expected, c('base64enc', '0.1-3'))
expected <- rbind(expected, c('bayesplot', '1.7.2'))
expected <- rbind(expected, c('beeswarm', '0.2.3'))
expected <- rbind(expected, c('bibtex', '0.4.2.2'))
expected <- rbind(expected, c('bitops', '1.0-6'))
expected <- rbind(expected, c('boot', '1.3-23'))
expected <- rbind(expected, c('bootnet', '1.2.4'))
expected <- rbind(expected, c('bridgesampling', '0.8-1'))
expected <- rbind(expected, c('broom', '0.5.2'))
expected <- rbind(expected, c('bstats', '0.0.1'))
expected <- rbind(expected, c('ca', '0.71'))
expected <- rbind(expected, c('caTools', '1.17.1.2'))
expected <- rbind(expected, c('callr', '3.4.0'))
expected <- rbind(expected, c('candisc', '0.8-0'))
expected <- rbind(expected, c('car', '3.0-4'))
expected <- rbind(expected, c('carData', '3.0-2'))
expected <- rbind(expected, c('cellranger', '1.1.0'))
expected <- rbind(expected, c('checkmate', '1.9.4'))
expected <- rbind(expected, c('class', '7.3-15'))
expected <- rbind(expected, c('cli', '1.1.0'))
expected <- rbind(expected, c('clipr', '0.7.0'))
expected <- rbind(expected, c('cluster', '2.1.0'))
expected <- rbind(expected, c('cmprsk', '2.2-9'))
expected <- rbind(expected, c('cocor', '1.1-3'))
expected <- rbind(expected, c('coda', '0.19-3'))
expected <- rbind(expected, c('codetools', '0.2-16'))
expected <- rbind(expected, c('coin', '1.3-1'))
expected <- rbind(expected, c('colorspace', '1.4-1'))
expected <- rbind(expected, c('colourpicker', '1.0'))
expected <- rbind(expected, c('compiler', '3.6.1'))
expected <- rbind(expected, c('conquer', '1.0.2'))
expected <- rbind(expected, c('contfrac', '1.1-12'))
expected <- rbind(expected, c('conting', '1.7'))
expected <- rbind(expected, c('corpcor', '1.6.9'))
expected <- rbind(expected, c('corrplot', '0.84'))
expected <- rbind(expected, c('cowplot', '1.0.0'))
expected <- rbind(expected, c('crayon', '1.3.4'))
expected <- rbind(expected, c('crosstalk', '1.1.0.1'))
expected <- rbind(expected, c('curl', '4.3'))
expected <- rbind(expected, c('d3Network', '0.5.2.1'))
expected <- rbind(expected, c('data.table', '1.13.2'))
expected <- rbind(expected, c('datasets', '3.6.1'))
expected <- rbind(expected, c('dbscan', '1.1-5'))
expected <- rbind(expected, c('deSolve', '1.28'))
expected <- rbind(expected, c('desc', '1.2.0'))
expected <- rbind(expected, c('digest', '0.6.22'))
expected <- rbind(expected, c('diptest', '0.75-7'))
expected <- rbind(expected, c('doParallel', '1.0.15'))
expected <- rbind(expected, c('doSNOW', '1.0.18'))
expected <- rbind(expected, c('dplyr', '0.8.3'))
expected <- rbind(expected, c('dygraphs', '1.1.1.6'))
expected <- rbind(expected, c('e1071', '1.7-2'))
expected <- rbind(expected, c('eigenmodel', '1.11'))
expected <- rbind(expected, c('ellipse', '0.4.1'))
expected <- rbind(expected, c('ellipsis', '0.3.0'))
expected <- rbind(expected, c('elliptic', '1.4-0'))
expected <- rbind(expected, c('emmeans', '1.4.7'))
expected <- rbind(expected, c('estimability', '1.3'))
expected <- rbind(expected, c('etm', '1.0.5'))
expected <- rbind(expected, c('evaluate', '0.14'))
expected <- rbind(expected, c('extraDistr', '1.8.11'))
expected <- rbind(expected, c('fansi', '0.4.1'))
expected <- rbind(expected, c('farver', '2.0.3'))
expected <- rbind(expected, c('fastmap', '1.0.1'))
expected <- rbind(expected, c('fdrtool', '1.2.15'))
expected <- rbind(expected, c('fitdistrplus', '1.0-14'))
expected <- rbind(expected, c('flexmix', '2.3-15'))
expected <- rbind(expected, c('flexplot', '0.8.9'))
expected <- rbind(expected, c('forcats', '0.4.0'))
expected <- rbind(expected, c('foreach', '1.4.7'))
expected <- rbind(expected, c('foreign', '0.8-71'))
expected <- rbind(expected, c('fpc', '2.2-3'))
expected <- rbind(expected, c('gbRd', '0.4-11'))
expected <- rbind(expected, c('gbm', '2.1.5'))
expected <- rbind(expected, c('gdata', '2.18.0'))
expected <- rbind(expected, c('gdtools', '0.2.1'))
expected <- rbind(expected, c('generics', '0.0.2'))
expected <- rbind(expected, c('ggExtra', '0.9'))
expected <- rbind(expected, c('ggbeeswarm', '0.6.0'))
expected <- rbind(expected, c('ggdendro', '0.1-20'))
expected <- rbind(expected, c('ggm', '2.3'))
expected <- rbind(expected, c('ggplot2', '3.2.1'))
expected <- rbind(expected, c('ggpol', '0.0.6'))
expected <- rbind(expected, c('ggrepel', '0.8.1'))
expected <- rbind(expected, c('ggridges', '0.5.2'))
expected <- rbind(expected, c('ggsci', '2.9'))
expected <- rbind(expected, c('glasso', '1.11'))
expected <- rbind(expected, c('glmnet', '3.0'))
expected <- rbind(expected, c('glue', '1.3.1'))
expected <- rbind(expected, c('gnm', '1.1-0'))
expected <- rbind(expected, c('goftest', '1.2-2'))
expected <- rbind(expected, c('gplots', '3.0.1.1'))
expected <- rbind(expected, c('grDevices', '3.6.1'))
expected <- rbind(expected, c('graphicalVAR', '0.2.2'))
expected <- rbind(expected, c('graphics', '3.6.1'))
expected <- rbind(expected, c('grid', '3.6.1'))
expected <- rbind(expected, c('gridExtra', '2.3'))
expected <- rbind(expected, c('gtable', '0.3.0'))
expected <- rbind(expected, c('gtools', '3.8.1'))
expected <- rbind(expected, c('haven', '2.2.0'))
expected <- rbind(expected, c('heplots', '1.3-5'))
expected <- rbind(expected, c('hexbin', '1.28.1'))
expected <- rbind(expected, c('highr', '0.8'))
expected <- rbind(expected, c('hmeasure', '1.0-2'))
expected <- rbind(expected, c('hms', '0.5.2'))
expected <- rbind(expected, c('htmlTable', '1.13.2'))
expected <- rbind(expected, c('htmltools', '0.4.0'))
expected <- rbind(expected, c('htmlwidgets', '1.5.1'))
expected <- rbind(expected, c('httpuv', '1.5.2'))
expected <- rbind(expected, c('huge', '1.3.4'))
expected <- rbind(expected, c('hypergeo', '1.2-13'))
expected <- rbind(expected, c('igraph', '1.2.6'))
expected <- rbind(expected, c('inline', '0.3.15'))
expected <- rbind(expected, c('invgamma', '1.1'))
expected <- rbind(expected, c('isoband', '0.2.1'))
expected <- rbind(expected, c('iterators', '1.0.12'))
expected <- rbind(expected, c('jfa', '0.3.0'))
expected <- rbind(expected, c('jmvcore', '1.0.8'))
expected <- rbind(expected, c('jomo', '2.6-10'))
expected <- rbind(expected, c('jpeg', '0.1-8.1'))
expected <- rbind(expected, c('jsonlite', '1.6'))
expected <- rbind(expected, c('kernlab', '0.9-28'))
expected <- rbind(expected, c('kknn', '1.3.1'))
expected <- rbind(expected, c('knitr', '1.25'))
expected <- rbind(expected, c('kutils', '1.69'))
expected <- rbind(expected, c('labeling', '0.3'))
expected <- rbind(expected, c('later', '1.0.0'))
expected <- rbind(expected, c('lattice', '0.20-38'))
expected <- rbind(expected, c('latticeExtra', '0.6-28'))
expected <- rbind(expected, c('lavaan', '0.6-5'))
expected <- rbind(expected, c('lazyeval', '0.2.2'))
expected <- rbind(expected, c('libcoin', '1.0-6'))
expected <- rbind(expected, c('lifecycle', '0.1.0'))
expected <- rbind(expected, c('lisrelToR', '0.1.4'))
expected <- rbind(expected, c('lme4', '1.1-23'))
expected <- rbind(expected, c('lmerTest', '3.1-0'))
expected <- rbind(expected, c('lmtest', '0.9-37'))
expected <- rbind(expected, c('logspline', '2.1.15'))
expected <- rbind(expected, c('longitudinal', '1.1.12'))
expected <- rbind(expected, c('loo', '2.2.0'))
expected <- rbind(expected, c('lsei', '1.3-0'))
expected <- rbind(expected, c('magrittr', '1.5'))
expected <- rbind(expected, c('maptools', '0.9-8'))
expected <- rbind(expected, c('markdown', '1.1'))
expected <- rbind(expected, c('matrixStats', '0.55.0'))
expected <- rbind(expected, c('matrixcalc', '1.0-3'))
expected <- rbind(expected, c('mclust', '5.4.6'))
expected <- rbind(expected, c('mcmc', '0.9-7'))
expected <- rbind(expected, c('mdscore', '0.1-3'))
expected <- rbind(expected, c('metaBMA', '0.6.2'))
expected <- rbind(expected, c('metafor', '2.1-0'))
expected <- rbind(expected, c('methods', '3.6.1'))
expected <- rbind(expected, c('mgcv', '1.8-28'))
expected <- rbind(expected, c('mgm', '1.2-7'))
expected <- rbind(expected, c('mi', '1.0'))
expected <- rbind(expected, c('mice', '3.6.0'))
expected <- rbind(expected, c('mime', '0.7'))
expected <- rbind(expected, c('miniUI', '0.1.1.1'))
expected <- rbind(expected, c('minqa', '1.2.4'))
expected <- rbind(expected, c('mitml', '0.3-7'))
expected <- rbind(expected, c('mitools', '2.4'))
expected <- rbind(expected, c('mnormt', '1.5-5'))
expected <- rbind(expected, c('modeltools', '0.2-22'))
expected <- rbind(expected, c('modules', '0.8.0'))
expected <- rbind(expected, c('moments', '0.14'))
expected <- rbind(expected, c('multcomp', '1.4-10'))
expected <- rbind(expected, c('munsell', '0.5.0'))
expected <- rbind(expected, c('mvtnorm', '1.0-11'))
expected <- rbind(expected, c('networktools', '1.2.1'))
expected <- rbind(expected, c('nlme', '3.1-140'))
expected <- rbind(expected, c('nloptr', '1.2.1'))
expected <- rbind(expected, c('nnet', '7.3-12'))
expected <- rbind(expected, c('nnls', '1.4'))
expected <- rbind(expected, c('nortest', '1.0-4'))
expected <- rbind(expected, c('npsurv', '0.4-0'))
expected <- rbind(expected, c('numDeriv', '2016.8-1.1'))
expected <- rbind(expected, c('officer', '0.3.11'))
expected <- rbind(expected, c('onewaytests', '2.4'))
expected <- rbind(expected, c('openssl', '1.4.1'))
expected <- rbind(expected, c('openxlsx', '4.1.3'))
expected <- rbind(expected, c('ordinal', '2019.4-25'))
expected <- rbind(expected, c('packrat', '0.5.0'))
expected <- rbind(expected, c('pan', '1.6'))
expected <- rbind(expected, c('parallel', '3.6.1'))
expected <- rbind(expected, c('parcor', '0.2-6'))
expected <- rbind(expected, c('party', '1.3-5'))
expected <- rbind(expected, c('pbapply', '1.4-2'))
expected <- rbind(expected, c('pbivnorm', '0.6.0'))
expected <- rbind(expected, c('pbkrtest', '0.4-7'))
expected <- rbind(expected, c('pillar', '1.4.2'))
expected <- rbind(expected, c('pkgbuild', '1.0.6'))
expected <- rbind(expected, c('pkgconfig', '2.0.3'))
expected <- rbind(expected, c('plotrix', '3.7-6'))
expected <- rbind(expected, c('plyr', '1.8.4'))
expected <- rbind(expected, c('png', '0.1-7'))
expected <- rbind(expected, c('polynom', '1.4-0'))
expected <- rbind(expected, c('ppcor', '1.1'))
expected <- rbind(expected, c('ppls', '1.6-1.1'))
expected <- rbind(expected, c('prabclus', '2.3-1'))
expected <- rbind(expected, c('prettyunits', '1.1.0'))
expected <- rbind(expected, c('processx', '3.4.1'))
expected <- rbind(expected, c('progress', '1.2.2'))
expected <- rbind(expected, c('promises', '1.1.0'))
expected <- rbind(expected, c('prophet', '0.6.1'))
expected <- rbind(expected, c('ps', '1.3.0'))
expected <- rbind(expected, c('psych', '1.8.12'))
expected <- rbind(expected, c('psychTools', '1.9.5.26'))
expected <- rbind(expected, c('purrr', '0.3.3'))
expected <- rbind(expected, c('pwr', '1.2-2'))
expected <- rbind(expected, c('qgraph', '1.6.3'))
expected <- rbind(expected, c('quadprog', '1.5-7'))
expected <- rbind(expected, c('quantmod', '0.4-15'))
expected <- rbind(expected, c('quantreg', '5.52'))
expected <- rbind(expected, c('qvcalc', '1.0.1'))
expected <- rbind(expected, c('randomForest', '4.6-14'))
expected <- rbind(expected, c('readr', '1.3.1'))
expected <- rbind(expected, c('readxl', '1.3.1'))
expected <- rbind(expected, c('regsem', '1.3.9'))
expected <- rbind(expected, c('relaimpo', '2.2-3'))
expected <- rbind(expected, c('relimp', '1.0-5'))
expected <- rbind(expected, c('rematch', '1.0.1'))
expected <- rbind(expected, c('remotes', '2.2.0'))
expected <- rbind(expected, c('reshape2', '1.4.3'))
expected <- rbind(expected, c('rio', '0.5.16'))
expected <- rbind(expected, c('rjags', '4-9'))
expected <- rbind(expected, c('rjson', '0.2.20'))
expected <- rbind(expected, c('rlang', '0.4.1'))
expected <- rbind(expected, c('robustbase', '0.93-6'))
expected <- rbind(expected, c('rockchalk', '1.8.144'))
expected <- rbind(expected, c('rpart', '4.1-15'))
expected <- rbind(expected, c('rprojroot', '1.3-2'))
expected <- rbind(expected, c('rsconnect', '0.8.16'))
expected <- rbind(expected, c('rstan', '2.19.3'))
expected <- rbind(expected, c('rstanarm', '2.19.2'))
expected <- rbind(expected, c('rstantools', '2.0.0'))
expected <- rbind(expected, c('rstudioapi', '0.10'))
expected <- rbind(expected, c('runjags', '2.0.4-6'))
expected <- rbind(expected, c('rvg', '0.2.4'))
expected <- rbind(expected, c('sandwich', '2.5-1'))
expected <- rbind(expected, c('scales', '1.0.0'))
expected <- rbind(expected, c('sem', '3.1-9'))
expected <- rbind(expected, c('semPlot', '1.1.2'))
expected <- rbind(expected, c('semTools', '0.5-2'))
expected <- rbind(expected, c('sfsmisc', '1.1-7'))
expected <- rbind(expected, c('shape', '1.4.4'))
expected <- rbind(expected, c('shiny', '1.4.0'))
expected <- rbind(expected, c('shinyjs', '1.0'))
expected <- rbind(expected, c('shinystan', '2.5.0'))
expected <- rbind(expected, c('shinythemes', '1.1.2'))
expected <- rbind(expected, c('signal', '0.7-6'))
expected <- rbind(expected, c('smacof', '2.0-0'))
expected <- rbind(expected, c('sn', '1.5-4'))
expected <- rbind(expected, c('snow', '0.4-3'))
expected <- rbind(expected, c('som', '0.3-5.1'))
expected <- rbind(expected, c('sourcetools', '0.1.7'))
expected <- rbind(expected, c('sp', '1.3-2'))
expected <- rbind(expected, c('spatial', '7.3-11'))
expected <- rbind(expected, c('splines', '3.6.1'))
expected <- rbind(expected, c('stanova', '0.3-0'))
expected <- rbind(expected, c('statmod', '1.4.34'))
expected <- rbind(expected, c('stats', '3.6.1'))
expected <- rbind(expected, c('stats4', '3.6.1'))
expected <- rbind(expected, c('stringi', '1.4.3'))
expected <- rbind(expected, c('stringr', '1.4.0'))
expected <- rbind(expected, c('strucchange', '1.5-2'))
expected <- rbind(expected, c('survey', '3.36'))
expected <- rbind(expected, c('survival', '2.44-1.1'))
expected <- rbind(expected, c('svglite', '1.2.2'))
expected <- rbind(expected, c('sys', '3.3'))
expected <- rbind(expected, c('systemfonts', '0.1.1'))
expected <- rbind(expected, c('tcltk', '3.6.1'))
expected <- rbind(expected, c('threejs', '0.3.3'))
expected <- rbind(expected, c('tibble', '2.1.3'))
expected <- rbind(expected, c('tidyr', '1.0.0'))
expected <- rbind(expected, c('tidyselect', '0.2.5'))
expected <- rbind(expected, c('tools', '3.6.1'))
expected <- rbind(expected, c('truncnorm', '1.0-8'))
expected <- rbind(expected, c('tseries', '0.10-47'))
expected <- rbind(expected, c('ucminf', '1.1-4'))
expected <- rbind(expected, c('utf8', '1.1.4'))
expected <- rbind(expected, c('utils', '3.6.1'))
expected <- rbind(expected, c('uuid', '0.1-4'))
expected <- rbind(expected, c('vcd', '1.4-4'))
expected <- rbind(expected, c('vcdExtra', '0.7-1'))
expected <- rbind(expected, c('vctrs', '0.2.1'))
expected <- rbind(expected, c('vipor', '0.4.5'))
expected <- rbind(expected, c('viridis', '0.5.1'))
expected <- rbind(expected, c('viridisLite', '0.3.0'))
expected <- rbind(expected, c('visNetwork', '2.0.8'))
expected <- rbind(expected, c('wTO', '1.6.3'))
expected <- rbind(expected, c('weightr', '2.0.2'))
expected <- rbind(expected, c('weights', '1.0'))
expected <- rbind(expected, c('whisker', '0.4'))
expected <- rbind(expected, c('withr', '2.1.2'))
expected <- rbind(expected, c('wordcloud', '2.6'))
expected <- rbind(expected, c('xfun', '0.10'))
expected <- rbind(expected, c('xml2', '1.3.2'))
expected <- rbind(expected, c('xtable', '1.8-4'))
expected <- rbind(expected, c('xts', '0.12.1'))
expected <- rbind(expected, c('yaml', '2.2.0'))
expected <- rbind(expected, c('zeallot', '0.1.0'))
expected <- rbind(expected, c('zip', '2.0.4'))
expected <- rbind(expected, c('zoo', '1.8-6'))
#--auto-generated
expected.package.names <- expected[,1]
dimnames(expected) <- list(expected.package.names, c("Package", "Version"))
return(expected)
}
.checkPackages <- function()
{
expected <- .expectedPackages()
expected.package.names <- expected[,1]
installed <- utils::installed.packages()
installed.package.names <- dimnames(installed)[[1]]
messages <- c()
for (package.name in expected.package.names)
{
if (package.name %in% installed.package.names)
{
installed.version <- installed[package.name, "Version"]
expected.version <- expected[package.name, "Version"]
if (installed.version != expected.version)
messages <- c(messages, paste("Package ", package.name, " is not the correct version; expected: ", expected.version, ", installed: ", installed.version, sep=""))
}
else
messages <- c(messages, paste("Package ", package.name, " not installed!", sep=""))
}
if (length(messages) == 0) return(list("All R-packages are up-to-date!"))
else return(list(official=FALSE, messages=messages))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.