2017-05-20 3 views
0

フィルタ関数を使用して移動平均をRで計算したかったのですが、dplyrパッケージとの競合によりこの関数が機能していないようです。 dplyrを適用した後にライブラリ "base"と "stats"を適用しようとしましたが、フィルタ機能が何とか利用可能になると期待しました。 "C_cfilterはありません"というメッセージが表示され、動作しません。私はこの問題を解決する方法を理解したいと思います。我々はフィルタ関数が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 

だから、マスキング機能について伝えるdplyrパッケージをロードするとき、それがdplyrfilter

stats::filter 

メッセージによってマスクされているよう

答えて

1

私たちは、::を使用するために、これらの機能のすべてを必要とします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 

その効果はあなたの答えは完璧以上である

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 
+1

異なるclassのために存在します。どうもありがとうございます。 – HQMA

+0

@HQMAコメントありがとうございます。 [ここ](http://stackoverflow.com/help/someone-answers)にチェックを入れることもできます。 – akrun

関連する問題