2016-05-21 17 views
5

पर आर पैकेज के इतिहास में संस्करणों की संख्या निर्धारित करें क्या सीआरएएन पर एक पैकेज के संस्करणों की संख्या निर्धारित करना संभव है?सीआरएएन

उत्तर

7

यहाँ एक एक्सएमएल पैकेज का उपयोग है। यह सिर्फ संग्रहीत संस्करणों की गणना करता है (अधिक सटीक, संग्रहीत tar.gz फ़ाइलों की संख्या)। वर्तमान सहित संस्करणों की कुल संख्या प्राप्त करने के लिए 1 जोड़ें।

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

यहां एक साधारण कार्य है जो किसी दिए गए पैकेज के पुराने संस्करणों के साथ CRAN पृष्ठ पर जाता है और उन्हें गिना जाता है।

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" 
संबंधित मुद्दे