Il titolo non è super descrittivo in quanto il problema è più lungo di un titolo ragionevole che potrei pensare di visualizzare.Afferrare i nomi degli oggetti da una funzione
Desidero avere una funzione che acquisisce nomi di oggetti da altre funzioni che possono essere utilizzate come argomenti in un'altra funzione. Ecco un tentativo di barebone:
grab <- function(x) {
as.character(substitute(x))
}
FUN <- function(foo, bar = grab(foo)) {
bar
}
FUN(mtcars)
Ecco voglio FUN
per restituire la stringa di caratteri "mtcars" ma restituisce "foo". Come si può fare una funzione di grab che fa questo (voglio farlo perché sto andando a usare questo come predefinito per un file txt/csv etc .È un'impostazione di convenienza
Ecco alcuni tentativi non riusciti (ma voglio avere una funzione grab generica):
FUN2 <- function(foo, bar = as.character(substitute(bar))) {
bar
}
FUN2(mtcars)
#==================
FUN3 <- function(foo, bar) {
if(missing(bar)) bar <- foo
as.character(substitute(bar))
}
FUN3(mtcars)
ish vita reale esempio:
real_example <- function(obj, file = grab(obj)) {
write.csv(obj, file = sprintf("%s.csv", file))
}
Sentiti libero di modificare o modificare il titolo per renderlo più chiaro. –
Questa domanda sembra molto simile: http://stackoverflow.com/questions/5754367/using-substitute-to-get-argument-name-with – Frank
@Frank hai risposto a una di quelle risposte? –