R: 2 функции с одинаковым именем в 2 разных пакетах - PullRequest
57 голосов
/ 06 апреля 2011

Мне нужно загрузить в пакеты R: tseries и chron

Оба имеют функцию is.weekend

В моем окружении всегда есть функция из второго пакета, который я загрузил.

Как я всегда могу получить доступ к функции, скажем, из chron?

Ответы [ 2 ]

77 голосов
/ 06 апреля 2011

Вы, наверное, уже заметили, что порядок загрузки пакетов имеет значение, т.е. пакет, который загружается последним, будет маскировать функции в пакетах, загруженных ранее.

Чтобы указать пакет, который вы хотите использоватьсинтаксис:

chron::is.weekend()
tseries::is.weekend()

Другими словами, используйте packagename::functionname()

Кроме того, если вы знаете, что вам всегда захочется использовать функцию в chron, вы можете определить свойсобственная функция следующим образом:

is.weekend <- chron::is.weekend    #EDIT
4 голосов
/ 06 апреля 2011
library(chron)
is.weekend.chron <- is.weekend
library(tseries)

тогда вы можете вызвать is.weekend для версии tseries или is.weekend.chron для версии chron

...