Найти функции с конкретными аргументами - программирование

Найти функции с конкретными аргументами

Как вы можете найти имена и местоположения всех функций, имеющих определенный аргумент? Есть ли способ найти их для функций в глобальной среде, прикрепленных пакетах и ​​установленных пакетах?

4b9b3361

Ответ 1

Я предполагаю, что вы задаете вопрос, чтобы просто не потерять отличный ответ Бен. Здесь я немного изменяю ответ Ben для поиска любого аргумента:

uses_arg <- function(x,arg) 
  is.function(fx <- get(x)) && 
  arg %in% names(formals(fx))

Например, чтобы получить функцию с аргументом na.rm:

basevals <- ls(pos="package:base")      ## package name : here I use the base package
basevals[sapply(basevals,uses_arg,'na.rm')]

ИЗМЕНИТЬ

лучше name аргумент ls в сочетании с asNamespace:

basevals  <- ls(asNamespace('base'))
basevals[sapply(basevals,uses_arg,'na.rm')]