R中的过滤函数无法正常工作

4

我在使用R语言时,无法正确运行筛选函数,也不知道原因。我正在按照Kleiber和Zeileis(2008)的《应用计量经济学与R》一书中的示例进行操作,内容如下:

data("UKDriverDeaths")
lines(filter(UKDriverDeaths, c(1/2, rep(1, 11), 1/2)/12), col = 2)

在 R Studio 0.99.486 中,它给出了以下错误信息:
Error in lines(filter(UKDriverDeaths, c(1/2, rep(1, 11), 1/2)/12), col = 2) : 
  error in evaluating the argument 'x' in selecting a method for function      'lines': Error in UseMethod("filter_") : 
  no applicable method for 'filter_' applied to an object of class "ts"

在 R 3.2.2 中,它给了我这个错误:

Error in plot.xy(xy.coords(x, y), type = type, ...) : 
  plot.new has not been called yet

我通常使用R Studio,所以不确定'plot.new'错误是由于我对R 3.2.2的某些不理解导致的,但是对于R Studio错误,我不明白为什么错误显示“没有适用于'class"ts"'对象的'filter_'方法”,因为过滤函数专门用于时间序列。

这是否与我使用的R Studio版本有关呢?

如果能给予任何建议,我将不胜感激,因为这已经让我有点疯狂了。


5
我猜你可能加载了另一个过载filter的程序包。请尝试使用stats::filter。 - Tyler Rinker
搞定了!非常感谢你! - LTS
2
一个可能的罪魁祸首:如果加载了dplyr,则dplyr::filter会掩盖stats::filter。因此在加载时会出现这些消息。 - alistaire
1个回答

4

dplyr::filter掩盖了stats::filter(您正在尝试使用的函数)。

您可以通过函数dplyr::filter_(注意最后的下划线)内部调用函数dplyr::filter来确定这一点,如果您查看traceback,则会发现错误是由dplyr::filter_引起的。


2
顺便提一下,我意识到其他人已经在原帖下方的评论中正确回答了这个问题。但是我想为下一个遇到这个问题的人提供一个实际的答案。 - Mike Williamson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接