manipulation ggtitle ggplot change r

ggtitle - Obtener todos los parámetros como lista



ggplot title center (5)

¿R proporciona un objeto / función / método / palabra clave para obtener todos los argumentos de función?

Usando un ejemplo: function(a, b="default", ...) proporcionaría a y b así como ... dentro del entorno de la función. ¿Hay una declaración similar a la list(...) que también incluiría a y b en el resultado?

O dicho de otra manera: una abreviatura para la list(a=a, b=b, ...) , function(a, b, ...) dada function(a, b, ...)


Creo que estas buscando formals :

formals(sd) $x $na.rm [1] FALSE

Y usar dput en esto le da el formulario que especifica en la pregunta:

dput(formals(sd)) list(x = , na.rm = FALSE)

Tenga en cuenta que los formals no funcionan para funciones primitivas , solo cierres.


Creo que quieres match.call :

tmpfun <- function(a,b,...) { print(as.list(match.call())) print(as.list(match.call(expand.dots=FALSE))) } > tmpfun(a=1, b=2, c=3, d=4) [[1]] tmpfun $a [1] 1 $b [1] 2 $c [1] 3 $d [1] 4 [[1]] tmpfun $a [1] 1 $b [1] 2 $... $...$c [1] 3 $...$d [1] 4


Me topé con esta pregunta mientras buscaba algo relacionado. Aunque me doy cuenta de que esto tiene varios años, las respuestas parecen insatisfactorias y no parece haber ninguna solución estándar para la pregunta.

Es posible hacer una solución alternativa (poco elegante), utilizando una combinación de las funciones formals y del environment . El siguiente ejemplo extrae los argumentos del entorno utilizando nombres extraídos de los formales, luego agrega la lista de puntos suspensivos. Si desea tener los valores tal como se establecieron al momento de la llamada a la función, establezca el argumento orig_values ​​en TRUE. La función solo incluye variables establecidas implícita o explícitamente en la llamada a la función.

allargs <- function(orig_values = FALSE) { # get formals for parent function parent_formals <- formals(sys.function(sys.parent(n = 1))) # Get names of implied arguments fnames <- names(parent_formals) # Remove ''...'' from list of parameter names if it exists fnames <- fnames[-which(fnames == ''...'')] # Get currently set values for named variables in the parent frame args <- evalq(as.list(environment()), envir = parent.frame()) # Get the list of variables defined in ''...'' args <- c(args[fnames], evalq(list(...), envir = parent.frame())) if(orig_values) { # get default values defargs <- as.list(parent_formals) defargs <- defargs[unlist(lapply(defargs, FUN = function(x) class(x) != "name"))] args[names(defargs)] <- defargs setargs <- evalq(as.list(match.call())[-1], envir = parent.frame()) args[names(setargs)] <- setargs } return(args) } tempf <- function(a, b = 2, ...) { d <- 5 b <- 3 cat("Currently set values defined in call or formals/n") print(allargs()) cat("Values as defined at the time of the call/n") print(allargs(T)) } tempf(1, c = 3) Currently set values defined in call or formals $a [1] 1 $b [1] 3 $c [1] 3 Values as defined at the time of the call $a [1] 1 $b [1] 2 $c [1] 3


Una solución es utilizar:

tempf <- function(a, b = 2, ...) { argg <- c(as.list(environment()), list(...)) print(argg) } tempf(1, c = 3) $a [1] 1 $b [1] 2 $c [1] 3

Esto crea una lista con nombre de los valores de argumento.


prueba la función args

¿Cuáles son los argumentos para la función mean ?

> args(mean) function (x, ...) NULL

¿Qué pasa con la función lm ?

> args(lm) function (formula, data, subset, weights, na.action, method = "qr", model = TRUE, x = FALSE, y = FALSE, qr = TRUE, singular.ok = TRUE, contrasts = NULL, offset, ...) NULL

Si quieres obtener una lista de argumentos prueba

as.list(args(lm))