vectores varias unitario superponer studio julioprofe graficos graficas componentes function r names

function - varias - vector unitario



¿Hay una manera de obtener un vector con el nombre de todas las funciones que uno podría usar en R? (2)

Me gustaría tener una llamada que me devuelva un vector con los nombres de todas las funciones que podría llamar en la sesión R actual. ¿Alguien sabe como lograr esto?

(Me gustaría verificar las variables ingresadas por el usuario con este vector. Tuvimos algún problema inesperado con los usuarios que ingresaron, por ejemplo, c como nombres de variables)

ACTUALIZACIÓN: Me gustaría obtener los nombres de las funciones de todos los paquetes cargados actualmente.

SOLUCIÓN (a mitad de camino): basado en la sugerencia de Joris Meys con lsf.str() me ocurrió la siguiente función que devuelve un vector ordenado con todos los nombres de funciones disponibles actualmente:

getFunctionNames <- function() { loaded <- (.packages()) loaded <- paste("package:", loaded, sep ="") return(sort(unlist(lapply(loaded, lsf.str)))) }

Bu, t vea también los comentarios en la publicación de Joris Meys para respuestas aún mejores.


Pedí una Q similar en R-Help hace muchas lunas (2007) y el Prof. Brian Ripley proporcionó esto como una solución:

findfuns <- function(x) { if(require(x, character.only=TRUE)) { env <- paste("package", x, sep=":") nm <- ls(env, all=TRUE) nm[unlist(lapply(nm, function(n) exists(n, where=env, mode="function", inherits=FALSE)))] } else character(0) } pkgs <- dir(.Library) z <- lapply(pkgs, findfuns) names(z) <- pkgs Z <- sort(unique(unlist(z)))

Lo que da salida como:

> head(Z) [1] "^" "-" "-.Date" "-.POSIXt" ":" "::"

Esto fue para encontrar todas las funciones en los paquetes especificados por paquetes de objetos para que pueda controlar los paquetes que se cargan / verifican.

Una versión modificada que funciona en el conjunto de paquetes cargados actualmente sería:

findfuns2 <- function(pkgs) { nm <- ls(pkgs, all = TRUE) nm[unlist(lapply(nm, function(n) exists(n, where = pkgs, mode = "function", inherits = FALSE)))] if(isTRUE(all.equal(length(nm), 0))) character(0) else nm } pkgs <- search() pkgs <- pkgs[grep("package:", pkgs)] z <- lapply(pkgs, findfuns2) z <- sort(unique(unlist(z))) head(z)


lsf.str() como un comienzo.

por ejemplo: x <- as.character(lsf.str("package:base")) le da una lista de todas las funciones en el paquete base. Podrías agregar todos los paquetes contra los que quieras verificar. stats y utils vienen a la mente primero.

EDITAR: con respecto a su pregunta sobre los paquetes cargados actualmente:

x <- unlist (sapply (búsqueda () [- 1], función (x) como.caracter (lsf.str (x)))) ver comentarios

pkgs <- search() pkgs <- pkgs[grep("package:",pkgs)] y <- unlist(sapply(pkgs,lsf.str))

Hace el truco.