Функция по умолчанию задана как вектор - PullRequest
0 голосов
/ 01 мая 2018

В файле справки для некоторых функций значения по умолчанию иногда задаются как векторы. Пример:

?base::rank

Откроется файл справки, в котором показано использование.

Использование:

 rank(x, na.last = TRUE,
      ties.method = c("average", "first", "last", "random", "max", "min"))

В этом примере по умолчанию для na.last является TRUE. Но значение по умолчанию для ties.method задается как вектор. Что именно это означает с точки зрения того, который выбран по умолчанию? И, что более важно, почему так написано в первую очередь?

Спасибо

1 Ответ

0 голосов
/ 01 мая 2018

По умолчанию используется первое значение. Он написан таким образом, чтобы вы могли сразу увидеть все возможные варианты.

Внутренне, функция будет использовать match.arg для оценки ввода пользователя и сопоставления его с используемым вектором. Это сопоставление выполняется с использованием pmatch (p для частичное сопоставление), так что аргумент может быть сокращен. Например, rank(x, "first") может быть сокращено до rank(x, "f"). Смотрите ?match.arg для более подробной информации. Цитата ?match.arg Описание:

match.arg сопоставляет arg с таблицей возможных значений, как указано choices, где NULL означает получение первого.

match.arg обычно используется, когда для аргумента имеется небольшое или среднее число возможных вариантов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...