Qualcuno sa come scrivere una funzione F che accetta una funzione chiamata (diciamo, mean (x = 1:10)) come argomento e restituisce solo il nome di la funzione viene invocata (media)?estraendo una chiamata nome funzione da una funzione chiamata
I miei migliori tentativi finora sono riassunti di seguito
(function(x1){
return(deparse(substitute(x1)))
})(mean(x = 1:10))
### 'mean(x = 1:10)'
Modifica x1 (la chiamata di funzione) per l'espressione prima di de-analisi non sembra aiutare molto: che restituisce
(function(x1){
return(deparse(as.expression(substitute(x1))))
})(mean(x = 1:10))
# "expression(mean(x = 1:10))"
Se possibile, mi piacerebbe poter usare anche le funzioni anonime come argomento, quindi F deve restituire (funzione (x) stampa (x)) per (funzione (x) stampa (x)) (1). Se hai bisogno di chiarimenti sentiti libero di commentare. Grazie.
edit1: solo per notare, vorrei evitare di verificare la prima parentesi ed escopiare il codice prima di esso (per "mean (x = 1:10)" che restituirebbe "mean"), come " cattivo (Fun_nAme" è in realtà un nome di funzione legale in R.
domanda ha risposto: la risposta di Josh O'Brien è stato perfetto: la funzione F che soddisfa le condizioni di cui sopra è
F <- function(x) deparse(substitute(x)[[1]])
funziona bene per operatori binari, funzioni standard e funzioni anonime