A veces me acostumbro al diseño de un paquete R particular y quiero buscar CRAN para todos los paquetes de ese autor (usemos a Hadley Wickham, por ejemplo). ¿Cómo puedo hacer una búsqueda así (me gustaría usar R pero este no tiene que ser el modo de búsqueda).Buscar un paquete por un autor en particular
Respuesta
Crantastic can search by author. Puede hacer bastante más con crantastic, pero la funcionalidad que está buscando ya se proporciona allí.
Eso funciona pero parece que no puedo buscar, pero debo buscar en la lista de paquetes hasta que encuentre el paquete del autor que quiero y luego pueda hacer clic en su nombre. Si lo estoy usando mal, házmelo saber. Por ejemplo, si busco [dbConnect] (http://crantastic.org/packages/dbConnect) puedo encontrar ese autor y hacer clic en su nombre, pero parece que no puedo escribir "Kurkiewicz" (autor de dbConnect) en la barra de búsqueda y devuelve sus paquetes. Si este es el mejor enfoque, servirá, pero parece que debe haber una forma mejor o quizás lo estoy haciendo mal. –
Supongo que en realidad no probé con la barra de búsqueda que no parece buscar entre los mantenedores del paquete. En esa página acabo de hacer una simple Ctrl-f y busqué la página de esa manera. – Dason
no sabía acerca de Ctrl + f Eso funciona. La primera respuesta y probablemente la más rápida hasta el momento obtiene el control. –
Adaptado de available.packages by publication date:
## restrict to first 100 packages (by alphabetical order)
pkgs <- unname(available.packages()[, 1])[1:100]
desc_urls <- paste(options("repos")$repos,"/web/packages/", pkgs,
"/DESCRIPTION", sep = "")
desc <- lapply(desc_urls, function(x) read.dcf(url(x)))
authors <- sapply(desc, function(x) x[, "Author"])
Como yo soy un narcisista (y Hadley Wickham no tiene paquetes en el primer 100):
pkgs[grep("Bolker",authors)]
# [1] "ape"
El principal problema de esta solución es que hacer de verdad (en lugar de solo para los primeros 100 paquetes) significa golpear CRAN 3000+ veces para la información del paquete ...
editar: una solución mejor, basado en la solución de Jeroen Oom en el mismo lugar:
recent.packages.rds <- function(){
mytemp <- tempfile()
download.file(paste0(options("repos")$repos,"/web/packages/packages.rds"),
mytemp)
mydata <- as.data.frame(readRDS(mytemp), row.names=NA)
mydata$Published <- as.Date(mydata[["Published"]])
mydata
}
mydata <- recent.packages.rds()
unname(as.character(mydata$Package[grep("Wickham",mydata$Author)]))
# [1] "classifly" "clusterfly" "devtools" "evaluate" "fda"
# [6] "geozoo" "ggmap" "ggplot2" "helpr" "hints"
# [11] "HistData" "hof" "itertools" "lubridate" "meifly"
# [16] "memoise" "munsell" "mutatr" "normwhn.test" "plotrix"
# [21] "plumbr" "plyr" "productplots" "profr" "Rd2roxygen"
# [26] "reshape" "reshape2" "rggobi" "roxygen" "roxygen2"
# [31] "scales" "sinartra" "stringr" "testthat" "tourr"
# [36] "tourrGui"
El código debe ir al paquete 'fortunes'. P: ¿Qué obtienes si agregas Bolker a los autores del paquete R? A: Un simio. –
Gracias Ben. Definitivamente un enfoque, pero como usted señala lleva una cantidad de tiempo considerable. El enfoque de Dason es probablemente el más eficiente.Gracias por la solución R :) –
revise la versión actualizada ... –
No exactamente por el autor, pero tal vez el acceso de mantenedor También sería útil?
http://cran.r-project.org/web/checks/check_summary_by_maintainer.html#summary_by_maintainer
EDITAR por Tyler Rinker
sugerencia de Dwin puede ser llevado a buen término con estas líneas de código:
search.lib <- function(term, column = 1){
require(XML)
URL <- "http://cran.r-project.org/web/checks/check_summary_by_maintainer.html#summary_by_maintainer"
dat <-readHTMLTable(doc=URL, which=1, header=T, as.is=FALSE)
names(dat) <- trimws(names(dat))
dat$Maintainer[dat$Maintainer == ""] <- NA
dat$Maintainer = zoo::na.locf(dat$Maintainer)
if (is.numeric(column)) {
dat[agrep(term, dat[, column]), 1:3]
} else {
dat[agrep(term, dat[, agrep(column, colnames(dat))]), 1:3]
}
}
search.lib("hadley")
search.lib("bolker")
search.lib("brewer", 2)
DWin Publiqué una edición (una solución) a mi pregunta utilizando su sugerencia +1 –
Debido a las filas en blanco, solo se devolvió el primer paquete alfabético de cada autor, ¿quizás debido a las actualizaciones de formato en el sitio? Editado para completar los valores perdidos y devolver todos los resultados. – Gregor
- 1. ¿Cómo puedo determinar el autor de un paquete R?
- 2. Deshabilitar el registro para un paquete en particular
- 3. Filtrar por autor en TortoiseHg
- 4. Heredando un método protegido por paquete por una clase en un paquete diferente
- 5. GitHub - Lista confirma por autor
- 6. ¿Cómo puedo buscar un paquete de hackage para una función?
- 7. Obteniendo el índice de un artículo particular en el arreglo
- 8. Bash error al ignorar por un comando en particular
- 9. ¿Cómo buscar e invocar un .NET TypeConverter para un tipo particular?
- 10. Buscar paquete Eigen3 para CMake
- 11. Buscar por campo en Lucene
- 12. xcode: buscar por archivo
- 13. Buscar hilos que se ejecutan para un proceso en particular en Linux
- 14. Buscar el número de bytes que está usando un Hash en particular en Ruby
- 15. CheckedListBox - Buscar un elemento por texto
- 16. ¿Cómo buscar una unidad que se 'importa implícitamente' en un paquete Delphi 6?
- 17. ¿Puede yum decirme cuáles de mis repositorios brindan un paquete en particular?
- 18. ¿Cómo buscar la sesión de django para un usuario en particular?
- 19. Tema del formulario que solo se aplica a las plantillas en un paquete particular
- 20. Buscar paquetes por identificador
- 21. ¿Cómo depurar un paquete en XCode?
- 22. ¿Cómo buscar un nodo particular en jtree y expandir ese nodo?
- 23. Detener un commit de git por un autor específico utilizando el enlace de precompilación
- 24. ¿Cómo ejecutar todas las pruebas en un paquete particular con Maven?
- 25. Cómo buscar un elemento secundario en un panel en ExtJs
- 26. Verifique para ver si un objeto de registro activo particular está en un 'alcance' particular
- 27. ¿Cómo buscar un elemento en un vector?
- 28. ¿Agrupe una matriz multidimensional por un valor particular?
- 29. Buscar un tipo en REPL?
- 30. buscar un punto en el video html5
creo que este post http://stackoverflow.com/ questions/8722233/available-packages-by-publication-date tiene los ingredientes básicos que necesita ... –
Publiqué una pregunta similar hace unos días (http://stackoverflow.com/questions/10032079/crantastic-p ackages-sorted-by-number-of-users), pero se cerró rápidamente por no ser una cuestión de programación real. Espero que seas más afortunado que yo (¡reconozco que tu fraseología es mucho mejor que la mía!). Si está interesado en una solución R, he publicado un artículo con código para raspar (algunos de) los datos de crantastic en un data.frame en http://r-de-jeu.blogspot.com/2012/04/50- most-used-r-packages.html. – flodel
Quité la respuesta publicada en la pregunta y la agregué a la respuesta proporcionada por @DWin. Por favor, no responda su propia pregunta dentro de la pregunta; esto se vuelve demasiado confuso. Si la respuesta publicada no acaba de llegar, publique y acepte su propia respuesta. – Andrie