Этот подраздел относится к закрытию, но не к примитивным функциям. Последние обычно игнорируют теги и выполняют позиционное сопоставление, но их справочные страницы следует использовать для исключений, которые включают журнал, round, signif, rep и seq.int.
Первое, что происходит при оценке функции, - это сопоставление формальных с фактическими или поставленными аргументами. Это осуществляется с помощью трехпроходного процесса :
Точное совпадение по тегам. Для каждого аргумента, предоставленного по имени, в списке формальных аргументов выполняется поиск элемента, имя которого точно совпадает. Ошибка в том, что один и тот же формальный аргумент соответствует нескольким действиям или наоборот.
Частичное соответствие по тегам. Каждый оставшийся присваиваемый аргумент сравнивается с остальными формальными аргументами с использованием частичного соответствия . Если имя предоставленного аргумента соответствует точно с первой частью формального аргумента, то два аргумента равны , которые считаются согласованными. Ошибочно иметь несколько неполных совпадений . Обратите внимание, что если f <- function(fumble, fooey) fbody
, то f(f = 1, fo = 2)
является незаконным, хотя 2-й фактический аргумент соответствует fooey
. f(f = 1, fooey = 2)
является законным, хотя второй аргумент соответствует точно и исключается из рассмотрения для частичного соответствия . Если формальные аргументы содержат «...», то частичное совпадение применяется только к предшествующим ему аргументам.
Позиционное сопоставление. Любые непревзойденные формальные аргументы привязаны к неупомянутым аргументам , по порядку. Если есть аргумент «...», он будет принимать оставшиеся аргументы , помеченные тегами или нет.
R использует [частичное соответствие] (http://stackoverflow.com/вопросы/14153904/частичное соответствие-о-функция-аргумент). – Arun
Спасибо за вашу ссылку. Я новичок в R и нашел некоторые необычные вещи. – elixiao