Mi pregunta es cómo extraer el nombre de una variable de una función que se llama en otra función en R?¿Cómo se extrae el nombre de una variable en una función que se llama desde otra función en R?
Para ilustrar, aquí es un ejemplo:
a <- function(variable) {
print(deparse(substitute(variable)))
internala(substitute(variable))
}
internala <- function(variableXX) {
namex=deparse(substitute(variableXX))
print(namex)
}
Llamar a la función a
da el siguiente resultado:
>a(whatever)
[1] "whatever"
[1] "substitute(variable)"
que significa que puedo extraer el nombre de la variable whatever
de a
, pero no desde internala
.
¿Alguna idea de esto?
¡Cualquier ayuda será apreciada!
Maria
Para que quede claro, ¿cuál es el comportamiento que desea? Supongo que quieres 'a (lo que sea)' imprimir 'lo que sea 'dos veces? Si también ejecuta 'internala (lo que sea)' ¿también quiere que la salida sea 'lo que sea '? ¿Qué sucede si llama a foo <- function (b) {a (b)}; foo (bar)? –
sí, lo has adivinado correctamente, quiero una (lo que sea) para imprimir lo que sea dos veces, internala (lo que sea) para imprimir lo que sea, y donde realmente me quedé atrapado es exactamente lo que señalaste, es decir, si tengo otra función foo <- (b) {a (b)}, me gustaría foo (barra) para imprimir la barra dos veces. ¿Está claro? ¿Tienes alguna idea de cómo hacer esto? tnx mucho! maria – Maria
Según el último caso, parece que desea expandir la expresión hasta la llamada de nivel superior, pero no más? Entonces, si también hubiera foo2 <- function (b) {foo (b + 1)}, ¿querrías que foo2 (bar) imprimiera bar + 1 dos veces? –