Skip to content

Instantly share code, notes, and snippets.

@stevenpollack
Last active February 6, 2016 00:12
Show Gist options
  • Save stevenpollack/0b97208a3e097dbfc5fc to your computer and use it in GitHub Desktop.
Save stevenpollack/0b97208a3e097dbfc5fc to your computer and use it in GitHub Desktop.
dependency analysis
package Published: Depends: Imports: Suggests:
QCApro 2016-01-27 R (≥ 3.2.2) lpSolve, utils QCA3 (≤ 0.0-7), QCAGUI (≤ 2.0), testthat (≤ 0.11.0)
QCA 2016-01-27 R (≥ 3.2.2) lpSolve, utils QCA3 (≤ 0.0-7), QCAGUI (≤ 2.0), testthat (≤ 0.11.0)
lsgl 2015-09-19 R (≥ 3.0.0), sglOptim (== 1.2.0), Matrix methods, utils, stats NA
msgl 2015-09-19 R (≥ 3.0.0), Matrix, sglOptim (== 1.2.0) methods, utils, stats NA
rplos 2015-09-16 ggplot2 methods, utils, stats, httr, jsonlite, dplyr, plyr, lubridate, reshape2, whisker, solr (≤ 0.1.6) XML, testthat, roxygen2, knitr
CAvariants 2015-09-11 R (> 3.0.1), methods NA NA
RDML 2015-07-22 R (> 3.0.3) R6 (≥ 2.0.1), assertthat (≥ 0.1), XML (≥ 3.98-1.1), plyr (≥ 1.8.1), dplyr (≥ 0.4.1), tidyr (≥ 0.2.0), rlist (≥ 0.4) knitr, chipPCR, ggplot2
kineticF 2015-06-04 R (> 3.1.0) circular, lqmm, splancs, sp, plotrix, MASS NA
XLConnect 2015-03-01 R (≥ 2.10.0), XLConnectJars (== 0.2-9) methods, rJava RUnit, lattice, ggplot2 (≥ 0.9.3), zoo
metaRNASeq 2015-01-26 R (≥ 2.15.0) NA HTSFilter (≥ 0.1.1), DESeq (≥ 1.8.3), DESeq2 (≥ 1.0.17), VennDiagram (≤ 1.6.7)
library(rvest)
library(magrittr)
library(stringr)
library(data.table)
availablePackagesSession <- html_session("http://cran.uni-muenster.de/web/packages/available_packages_by_date.html")
packagesToCheck <- read_html("http://cran.uni-muenster.de/web/packages/available_packages_by_date.html") %>%
html_node('table') %>%
html_table
checkPackageDescription <- function(packageDescription, comparators = c('≤','<','>','=')) {
lapply(na.omit(packageDescription[c("Depends:", "Imports:", "Suggests:")]),
function(value) {
ifelse(str_detect(value, paste0(comparators, collapse = "|")), value, NA)
}) %>%
unlist %>%
na.omit %>%
names %>%
paste0(collapse = ", ")
}
checkedPackages <-
packagesToCheck %$%
Package %>%
sapply(function(packageName) {
packageDescription <-
follow_link(availablePackagesSession, packageName) %$%
url %>%
read_html %>%
html_node('p+ table') %>%
html_table %>% {
packageDescription <- .$X2
names(packageDescription) <- .$X1
return(packageDescription)
}
checkPackageDescription(packageDescription)
})
checkedPackages %<>%
data.frame(Package = names(.), fieldsWithComparator = ., row.names = NULL, stringsAsFactors = FALSE)
checkedPackages
descriptions <-
checkedPackages %>%
subset(fieldsWithComparator != "") %$%
{packagesWithWeirdComparators <- Package} %T>%
print %>%
lapply(function(packageName) {
packageDescription <-
follow_link(availablePackagesSession, packageName) %$%
url %>%
read_html %>%
html_node('p+ table') %>%
html_table %>% {
packageDescription <- .$X2
names(packageDescription) <- .$X1
return(packageDescription)
} %>%
`[`(c("Depends:", "Imports:", "Suggests:", "Published:"))
})
descriptions %>%
lapply(function(x) t(x) %>% data.table) %>%
rbindlist %>%
set(j = "package", value = packagesWithWeirdComparators) %>%
setcolorder(c("package", "Published:", "Depends:", "Imports:", "Suggests:")) %>%
write.table(file = "packages_with_comparators.tsv", sep = "\t", row.names = FALSE)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment