У меня аналогичный вопрос, как this one, но более частный случай.получить имя функции, присвоенной переменной в R
Рассмотрим следующий пример кода:
fun1<-mean
fun2<-max
fun3<-median
Теперь я хочу, чтобы получить имена функций, возложенных на переменные, как charachter
с.
Хотя я понимаю, что this is not possible in general, выше случай кажется несколько особенным:
l<-list(fun1=fun1,fun2=fun2,fun3=fun3)
l
$fun1
function (x, ...)
UseMethod("mean")
<bytecode: 0x2793818>
<environment: namespace:base>
$fun2
function (..., na.rm = FALSE) .Primitive("max")
$fun3
function (x, na.rm = FALSE)
UseMethod("median")
<bytecode: 0x28382c8>
<environment: namespace:stats>
Так выход print(funX)
содержит имя функции, назначенной на funX
.
Как извлечь эту информацию в вектор character
?
Thx много для хороших предложений. Ваш второй пример поможет мне упростить [мое решение] (http://stackoverflow.com/a/35885909/2451238). Тем не менее, я не смог включить ваш подход в функцию (используя 'findGeneric', если' is.primitive' и 'deparse' в противном случае, так как' funX' будет скопирован снова (в 'fun' в моем примере), когда будет передано как аргумент функции более высокого порядка. В этом случае 'utils ::: findGeneric (as.character (quote (fun)), parent.frame())' returns '" "', возможно, это может быть сделано путем замены ' parent.frame() 'другим' envir'? – mschilli
Да, '.GlobalEnv'. – Roland
' sapply (l, function (fun) utils ::: findGeneric (as.character (quote (fun)), GlobalEnv)) 'возвращает' "" "" "" ', как и' sapply (l, function (fun) utils ::: findGeneric (as.character (quote (fun)), parent.frame())) 'before ... – mschilli