我想在R中使用过滤函数计算移动平均值,但由于与dplyr包的冲突,此函数似乎无效。 我在应用dplyr之后尝试应用库“base”和“stats”,这样我希望过滤器功能能够以某种方式再次可用, 但它仍然显示消息“没有C_cfilter”并且不起作用。我想弄清楚如何解决这个问题。
答案 0 :(得分:3)
我们需要使用::
,因为它被dplyr
filter
stats::filter
加载包dplyr
时的消息告诉了掩码函数
library(dplyr)
#Attaching package: ‘dplyr’
#The following objects are masked from ‘package:stats’:
#filter, lag
#The following objects are masked from ‘package:base’:
#intersect, setdiff, setequal, union
因此,所有这些函数都没有调用packagename::
会有一些错误
filter(1:10, rep(1, 3))
UseMethod(“filter_”)中的错误:“filter_”没有适用的方法 应用于类“c('整数','数字')”
的对象
stats::filter(1:10, rep(1, 3))
#Time Series:
#Start = 1
#End = 10
#Frequency = 1
#[1] NA 6 9 12 15 18 21 24 27 NA
或者会改变行为
lag(1:10)
#[1] NA 1 2 3 4 5 6 7 8 9
stats::lag(1:10)
#[1] 1 2 3 4 5 6 7 8 9 10
#attr(,"tsp")
#[1] 0 9 1
或可能对特定class
setdiff(1:5, 1:3)
#[1] 4 5
base::setdiff(1:5, 1:3)
#[1] 4 5
但效果将适用于不同的class
setdiff(data.frame(col1 = 1:5), data.frame(col1 = 1:3))
# col1
#1 4
#2 5
base::setdiff(data.frame(col1 = 1:5), data.frame(col1 = 1:3))
# col1
#1 1
#2 2
#3 3
#4 4
#5 5