Предположим, что я пишу функцию foo
с подписьюЕсть ли удобный, удобный способ получить список фактических аргументов изнутри?
foo <- function (bar, baz, frobozz, quux = TRUE, frotz = 42) {
# etc.
}
Если в теле этой функции, я хотел бы получить названный список фактических аргументов функции, полученные во время выполнения, я мог определить
actual_args <- list(bar = bar, baz = baz, frobozz = frobozz, quux = quux,
frotz = frotz)
... но это назначение трудно поддерживать, так как она должна быть изменена каждый раз, когда аргумент будет добавлен, удален или переименован. (Не говоря уже о том, что это тоже утомительно).
Есть ли способ инициализировать actual_args
, который останется неизменным относительно будущих изменений в сигнатуре функции?
Вы должны использовать реальный случай, и ваши усилия при отладке, а не жаловаться на ответы, которые были точны в этом простом случае. Сое все будет невозможно. Например, существует часто повторяющийся запрос на получение имен значений, передаваемых с помощью lapply и sapply ... они просто недоступны. –
@ 42: это совершенно несправедливо. Я не «жаловался»; Я просто изложил факты, если дополнительная информация приведет к пересмотренному или новому ответу. Я приму наилучший ответ на мой вопрос *, как я его разместил *, со временем, даже если он не работает для проблемы, с которой я действительно сталкиваюсь. У меня не было никакого способа узнать, что простой случай, который я опубликовал, будет отличаться от фактического случая, как это получается. Вопрос мне интересен только в том общем смысле, что я его разместил. Если решение для этого общего случая не работает для моей текущей проблемы, пусть будет так. – kjo
Полностью несправедливо? Вы опубликовали чрезмерно упрощенный вопрос, а затем сказали, что решение не подходит для вашего фактического использования. Рекомендуемый способ получить разъяснения для ответа, который не является удовлетворительным, - опубликовать редактирование на свой вопрос, а не публиковать многокомпонентные комментарии. –