`UseMethod ()` vs `inherits ()` для определения класса объекта в R - PullRequest
1 голос
/ 20 апреля 2020

Если мне нужно по-разному обрабатывать объекты R в соответствии с их классом, я могу либо использовать if и else в одной функции:

foo <- function (x) {
  if (inherits(x, 'list')) {
    # Foo the list
  } else if (inherits(x, 'numeric')) {
    # Foo the numeric
  } else {
    # Throw an error
  }
}

Или я могу определить метод:

foo <- function (x) UseMethod('foo')

foo.list <- function (x) {
  # Foo the list
}
foo.numeric <- function (x) {
  # Foo the numeric
}

Каковы преимущества каждого подхода? Есть ли последствия для производительности?

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