2016-05-21 17 views

Antwort

7

Hier ist eine mit dem XML Paket. Dies zählt nur die archivierten Versionen (genauer gesagt die Anzahl der archivierten tar.gz Dateien). Fügen Sie 1 hinzu, um die Gesamtzahl der Versionen einschließlich des aktuellen zu erhalten.

nCRANArchived <- function(pkg) { 
    link <- paste0("http://cran.r-project.org/src/contrib/Archive/", pkg) 
    qry <- XML::getHTMLLinks(link, xpQuery = "//@href[contains(., 'tar.gz')]") 
    length(qry) 
} 

nCRANArchived("data.table") 
# [1] 33 
nCRANArchived("ggplot2") 
# [1] 28 
nCRANArchived("MASS") 
# [1] 40 
nCRANArchived("retrosheet") ## shameless plug 
# [1] 2 
4

Hier ist eine einfache Funktion, die auf die CRAN-Seite mit den alten Versionen eines bestimmten Pakets geht und diese zählt.

num.versions = function(package) { 

    require(rvest) 
    require(stringr) 

    # Get text of web page with package version info 
    page = read_html(paste0("https://cran.r-project.org/src/contrib/Archive/", package, "/")) 
    doc = html_text(page) 

    # Return number of versions (add 1 for current version) 
    paste("Number of versions: ", 
     length(unlist(str_extract_all(doc, "tar\\.gz"))) + 1) 

} 

num.versions("ggplot2") 
[1] "Number of versions: 29" 

num.versions("data.table") 
[1] "Number of versions: 34" 

num.versions("distcomp") 
[1] "Number of versions: 4"