В настоящий момент интерпретатор R отправит вызов filter
в среду dplyr
, по крайней мере, если бы класс объекта был среди доступных методов:
методы (фильтр) [1 ] filter.data.frame * filter.default * filter.sf * filter.tbl_cube * filter.tbl_df * filter.tbl_lazy *
[7] filter.ts *
Как вы можете видеть, есть ts
, так что если бы объект принадлежал к этому классу, интерпретатор вместо этого доставил бы ему значения x. Однако, похоже, что авторы dplyr
заблокировали этот механизм и вместо этого включили функцию предупреждения. Вам нужно будет использовать:
getFromNamespace('filter', 'stats')
function (x, filter, method = c("convolution", "recursive"),
sides = 2L, circular = FALSE, init = NULL)
{ <omitting rest of function body> }
# same result also obtained with:
stats::filter
R функции содержатся в пространствах имен, поэтому полное обозначение функции будет: namespace_name::function_name
. Существует иерархия контейнеров пространства имен (фактически «среды» в терминологии R), расположенных вдоль пути поиска (который будет варьироваться в зависимости от порядка загрузки пакетов и их зависимостей). Оператор ::
-infix может использоваться для указания пространства имен или имени пакета, которое находится дальше по пути поиска, чем может быть найдено в контексте вызывающей функции. Функция search
может отображать имена загруженных в данный момент пакетов и связанные с ними пространства имен. См. ?search
Вот мой на данный момент (который довольно раздутый, потому что я отвечаю на многие вопросы и обычно не начинаю с чистых систем:
> search()
[1] ".GlobalEnv" "package:kernlab" "package:mice" "package:plotrix"
[5] "package:survey" "package:Matrix" "package:grid" "package:DHARMa"
[9] "package:eha" "train" "package:SPARQL" "package:RCurl"
[13] "package:XML" "package:rnaturalearthdata" "package:rnaturalearth" "package:sf"
[17] "package:plotly" "package:rms" "package:SparseM" "package:Hmisc"
[21] "package:Formula" "package:survival" "package:lattice" "package:remotes"
[25] "package:forcats" "package:stringr" "package:dplyr" "package:purrr"
[29] "package:readr" "package:tidyr" "package:tibble" "package:ggplot2"
[33] "package:tidyverse" "tools:rstudio" "package:stats" "package:graphics"
[37] "package:grDevices" "package:utils" "package:datasets" "package:methods"
[41] "Autoloads"
В данный момент я могу найти примеры из 3-х версий фильтра с помощью справочной системы:
?filter
# brings this up in the help panel
Help on topic 'filter' was found in the following packages:
Return rows with matching conditions
(in package dplyr in library /home/david/R/x86_64-pc-linux-gnu-library/3.5.1)
Linear Filtering on a Time Series
(in package stats in library /usr/lib/R/library)
Objects exported from other packages
(in package plotly in library /home/david/R/x86_64-pc-linux-gnu-library/3.5.1)