Puede haber mejores soluciones, pero find("functionname")
parece funcionar razonablemente bien? Sin embargo, solo funciona para paquetes cargados.
> find("strwidth")
[1] "package:graphics"
> find("qplot")
character(0)
> library(ggplot2)
> find("qplot")
[1] "package:ggplot2"
>
(Si necesita el nombre del paquete en bruto puede utilizar gsub("^package:","",results)
)
(Las respuestas a la pregunta anterior unido por Andrie incluyen esta respuesta; no dan lo de gsub
, y todos ellos parecen compartir el problema de no encontrar paquetes no cargado)
Aquí un corte rápido para encontrar funciones incluso en paquetes sin carga:.
findAllFun <- function(f) {
h <- help.search(paste0("^",f,"$"),agrep=FALSE)
h$matches[,"Package"]
}
findAllFun("qplot")
## "ggplot2"
findAllFun("lambertW")
## "emdbook" "VGAM"
> findAllFun("xYplot")
## "Hmisc" "lattice"
Si necesita encontrar funciones en los paquetes instalados (es decir buscando CRAN), entonces findFn
del paquete sos
será su amigo.
@Andrie Bien manchado. Dado que todos los paquetes ahora tienen un espacio de nombre, la Respuesta de hadley en el enlace de Preguntas y Respuestas que me llama la atención es la mejor solución. –
@GavinSimpson: ¿Por qué es mejor que 'findFunction'? (Estoy tratando de imaginarme explicando a un alumno por qué deberían usar 'getNamespaceName (environment (foo))' en lugar de 'findFunction (foo)' - el primero parece un poco mágico, y si no tiene un significado significativo ventajas ...) –
@BenBolker 'find()' & 'findFunction()' don; t devuelve * solo * el nombre del espacio de nombres (de ahí el paquete). Sus resultados necesitan un procesamiento posterior. Hadley's solo devuelve el nombre del paquete como personaje. Preferiría que para escribir una función o programación, pero para el código de usuario los otros están bien. –