Ma question est comment extraire le nom d'une variable d'une fonction qui est appelée dans une autre fonction dans R?Comment extraire le nom d'une variable dans une fonction appelée depuis une autre fonction dans R?
Pour illustrer, voici un exemple:
a <- function(variable) {
print(deparse(substitute(variable)))
internala(substitute(variable))
}
internala <- function(variableXX) {
namex=deparse(substitute(variableXX))
print(namex)
}
L'appel de la fonction a
donne le résultat suivant:
>a(whatever)
[1] "whatever"
[1] "substitute(variable)"
ce qui signifie que je peux extraire le nom de la whatever
variable à partir a
, mais pas de internala
.
Des commentaires à ce sujet?
Toute aide sera appréciée!
Maria
Juste pour être clair, quel est le comportement que vous voulez? Je devine que vous voulez 'a (peu importe)' imprimer 'what' deux fois? Si vous exécutez aussi 'internala (whatever)', voulez-vous que la sortie soit 'whatever'? Que faire si vous appelez foo <- function (b) {a (b)}; foo (bar)? –
oui, vous l'avez deviné correctement, je veux un (quelconque) imprimer deux fois, internala (quelquechose) pour imprimer quoi que ce soit et, où je suis réellement coincé, c'est exactement ce que vous avez indiqué, si j'ai une autre fonction foo <- function (b) {a (b)}, j'aimerais que foo (bar) imprime la barre deux fois. Est-ce clair? Avez-vous une idée de la façon de faire cela? tnx beaucoup! maria – Maria
Selon le dernier cas, il semble que vous souhaitiez étendre l'expression à l'appel de niveau supérieur, mais pas plus loin? Alors que s'il y avait aussi foo2 <- function (b) {foo (b + 1)} vous voudriez que foo2 (barre) imprime deux fois la barre + 1? –