Методы маскировки в R

Этот вопрос и в частностиэтот ответ поднял следующий вопрос: как я могу получить предупреждение о маскировке методов в R?

Если вы запустите следующий код в чистом сеансе R, вы заметите, что загрузкаdplyr изменяет метод по умолчанию дляlag.

lag(1:3, 1)
## [1] 1 2 3
## attr(,"tsp")
## [1] 0 2 1
require(dplyr)
lag(1:3, 1)
## [1] NA  1  2

Если вы приложите пакетdplyrвы получаете предупреждения для нескольких замаскированных объектов, но не получаете предупреждения о методе по умолчанию дляlag быть в маске. Причина в том, что при звонкеlag, универсальная функция изstats Пакет называется.

lag
## function (x, ...) 
## UseMethod("lag")
## <bytecode: 0x000000000c072188>
## <environment: namespace:stats>

А такжеmethods(lag) просто говорит мне, что есть методlag.default, Я вижу, что есть два метода, использующихgetAnywhere:

getAnywhere(lag.default)
## 2 differing objects matching ‘lag.default’ were found
## in the following places
## registered S3 method for lag from namespace dplyr
## namespace:dplyr
## namespace:stats
## Use [] to view one of them

Но это требует, чтобы я знал, чтобы проверить, если по умолчаниюlag метод был измененdplyr, Есть ли способ проверить, были ли методы замаскированы? Возможно, есть такая функция:

checkMethodMasking(dplyr)
## The following methods are masked from 'package:dplyr':
##    lag.default

NB. Недостаточно иметь предупреждение при загрузкеdplyr сrequire(dplyr), Метод также перегружается, если я просто загружаю пространство имен, не присоединяя пакет (например, я вызываюdplyr::mutateили даже я использую функцию из другого пакета, которая вызываетdplyr функция, которая была импортирована с помощьюimportFrom).

Ответы на вопрос(1)

Ваш ответ на вопрос