Tytuł nie jest opisowy, ponieważ problem jest dłuższy niż uzasadniony tytuł, który mógłbym wyświetlić.Pobieranie nazw obiektów z poziomu funkcji
Chcę mieć funkcję, która pobiera nazwy obiektów z innych funkcji, które mogą być używane jako argumenty w innej funkcji. Oto Barebone próba:
grab <- function(x) {
as.character(substitute(x))
}
FUN <- function(foo, bar = grab(foo)) {
bar
}
FUN(mtcars)
tu za Kupię FUN
powrócić ciąg znaków „mtcars” ale zwraca „foo”. W jaki sposób można utworzyć funkcję przechwytywania, która to robi (chcę to zrobić, ponieważ zamierzam użyć tego jako domyślnego dla pliku txt/csv itp. Jest to ustawienie wygody:
Oto niektóre nieudane próby (ale chcę mieć ogólną funkcję grab):
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)
Prawdziwe życie-owski przykład:
real_example <- function(obj, file = grab(obj)) {
write.csv(obj, file = sprintf("%s.csv", file))
}
Możesz edytować lub edytować tytuł, aby było to bardziej zrozumiałe. –
To pytanie wygląda bardzo podobnie: http://stackoverflow.com/questions/5754367/using-substitute-to-get-argument-name- with – Frank
@Frank czy otrzymałeś/-aś którąś z tych odpowiedzi do pracy? –