Проверьте, дает ли пользователь значение аргументу со значением по умолчанию - PullRequest
0 голосов
/ 04 января 2019

У меня есть функция f(x), где значение по умолчанию x равно 2. Функция возвращает квадрат.

f <- function(x = 2){
      return(x^2)
     }

Я хочу проверить в функции, если пользователь задает значение x.Даже если задано значение 2, я хочу знать.

Возможно, это эквивалентный код того, что я хочу.

 f <- function(x){
       if(!missing(x)) print("User did not give value to x")
       if(missing(x)) x <- 2
     return(x^2)
    } 

Я хочу сделать нечто подобное, установив значение по умолчаниюот х до 2 (не NULL также).Возможно ли это?

1 Ответ

0 голосов
/ 04 января 2019

Вы можете использовать match.call.В этом случае мы могли бы сделать

f <- function(x = 2) {
  if(is.null(match.call()$x))
    print("Nothing")
  x^2
}

f()
# [1] "Nothing"
# [1] 4

f(2)
# [1] 4

f(x = 2)
# [1] 4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...