Der Titel ist nicht wirklich beschreibend, da das Problem länger ist als ein vernünftiger Titel, den ich mir vorstellen könnte.Objektnamen aus einer Funktion herausholen
Ich möchte eine Funktion haben, die Objektnamen aus anderen Funktionen ergreift, die als Argumente in einer anderen Funktion verwendet werden können. Hier ist ein Barebone-Versuch:
grab <- function(x) {
as.character(substitute(x))
}
FUN <- function(foo, bar = grab(foo)) {
bar
}
FUN(mtcars)
hier Ichs Mangel FUN
die Zeichenfolge „mtcars“ zurückzukehren, aber es gibt „foo“. Wie könnte eine Grab-Funktion machen, die dies tut (Ich möchte dies tun, weil ich dies als Standard für eine TXT/CSV-Datei verwenden werde. Es ist eine Komforteinstellung.
Hier sind einige erfolglose Versuche (aber ich möchte eine generische Greiffunktion haben):
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)
Real life-ish Beispiel:
real_example <- function(obj, file = grab(obj)) {
write.csv(obj, file = sprintf("%s.csv", file))
}
Fühlen Sie sich frei Titel zu bearbeiten oder zu bearbeiten klarer zu machen. –
Diese Frage sieht sehr ähnlich aus: http://stackoverflow.com/questions/5754367/using-substitute-to-get-argument-name-with – Frank
@Frank hast du irgendeine dieser Antworten zu arbeiten? –