varias superponer studio graficos graficas r cran

studio - superponer graficas en r



Nombres de los paquetes disponibles de R (4)

Estoy ansioso por saber,

  • ¿Cuántos nombres de paquetes en CRAN tienen dos, tres, N caracteres?
  • qué combinaciones aún no se han utilizado ("unpoppler")
  • ¿Cuántos nombres de paquetes utilizan mayúsculas o camelCase?
  • ¿Cuántos nombres de paquetes terminan en 2?

Creo que podría revelar algunos hechos interesantes.

Edición: puntos de bonificación para gráficos animados que muestran la evolución en el tiempo de los paquetes CRAN.


Aquí hay un disparo basado en varias sugerencias.

packages <- available.packages()[,''Package''] ggplot(data.frame(n = nchar(packages))) + geom_histogram(aes(n), binwidth=1)

all <- length(packages) ## 3168 up <- sum(toupper(packages) == packages) ## 262 low <- sum(tolower(packages) == packages) ## 1697 pie(c(up, low, all-up-low), labels=c("UPPERCASE","lowercase","cAmElCaSe"))

let <- sapply(sapply(letters, grep, tolower(packages)), length) barplot(let)

length(packages[grep("2$", packages, perl=TRUE)]) # 29


Aquí hay un pequeño código para contestar algunas preguntas. Seguiré añadiendo a mi respuesta cuando encuentre tiempo.

library(XML); library(ggplot2); url = ''http://cran.r-project.org/web/packages/available_packages_by_name.html'' packages = readHTMLTable(url, stringsAsFactors = F)[[1]][-1,] # histogram of number of characters in package name qplot(nchar(V1), data = packages)


Haz un vector de todos los paquetes usando

myList <- available.packages()[,''Package'']

Entonces puedes analizar como quieras. Por ejemplo, una lista de paquetes con solo dos nombres de caracteres

myList[grep(''^..$'', myList)]


Una forma mejor que raspar una página web para obtener los nombres de los paquetes es usar la función available.packages() y procesar esos resultados. available.packages() devuelve una matriz que contiene detalles de todos los paquetes disponibles (pero se filtra de forma predeterminada; consulte la sección Detalles de ?available.packages para obtener más información).

pkgs <- available.packages(filters = "duplicates") nameCount <- unname(nchar(pkgs[, "Package"])) table(nameCount) > table(nameCount) nameCount 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 32 311 374 360 434 445 368 277 199 132 99 56 56 43 22 19 18 2 12 8 22 24 25 31 5 2 1 1

Usando nameCount podemos seleccionar paquetes con nombres que contengan cualquier número de caracteres sin tener que recurrir a nameCount , etc.

> unname(pkgs[which(nameCount == 2), "Package"]) [1] "BB" "bs" "ca" "cg" "dr" "ez" "FD" "ff" "HH" "HI" "iv" "JM" "ks" "M3" "mi" [16] "np" "oc" "oz" "PK" "PP" "qp" "QT" "RC" "rv" "Rz" "sm" "sn" "sp" "st" "SV" [31] "tm" "wq"