У меня есть пользовательская функция R с 3 обязательными аргументами
func <- function(x, y, z) {
some code...
}
В случае, если аргумент случайно исключен из вызова функции, я просто вызываю stop () следующим образом
if (missing(x)) {
stop("Please provide a value for x.")
}
if (missing(y)) {
stop("Please provide a value for y.")
}
if (missing(z)) {
stop("Please provide a value for z.")
}
Чтобы убедиться, что это действительно работает, я сделал следующее:
func(y, z) # x missing
func(x, z) # y missing
func(x, y) # z missing
Однако только последний вызов функции выше возвращает правильное сообщение.Обе предыдущие две функции возвращают «Пожалуйста, укажите значение для z.»
Как это возможно, если z не пропущен в этих вызовах?