2017-09-18 13 views
0

は、私が最近dplyrライブラリで作業を開始している(オブジェクトが見つかりません)、私は、次の例に説明として、非常に奇妙な問題を経験した:フィルタがdplyrでは正常に動作しない

データ:

df <- data.frame(Number = c(1,2), Letter = c('a','b'))

df = tbl_df(tst)

問題:

選択を実行すると、次のようにフィルタリング:

df %>% select(Number) %>% filter(Letter == 'a') 

することは私にエラーを与える:

"Error in filter_impl(.data, quo) :  
Evaluation error: object 'Letter' not found." 

私が選択し、フィルタの順序を変更することができ、それがOKに動作している間:

df %>% filter(Letter == 'a') %>% select(Number) 

結果:

# A tibble: 1 x 1 

Number 

<dbl> 

1 1 

これは一般的なルールであり、使用する順序があるかどうかを説明する場所が見つかりませんでしたdplyrキー機能または別の問題があります。このライン

df %>% select(Number) %>% filter(Letter == 'a') 

selectへの最初の呼び出しは1列のみ(Number)を含むデータテーブルであなたを残して

答えて

1

。どちらが正確にfilterが文句を言うのですか?あなたはLetter列を投げ捨てました。

2回目の呼び出しでは、最初にLetterをフィルタリングし、を入力し、次にを列挙します。

だから、filterはまさにそれと同じように動作します。これには「賢明な順序でのやり方」や「ゴミ出したごみ」以外の「一般的なルール」はありません。

+0

ありがとうございます。私はそれがチェーンプロセスであり、さらなる機能が最新の結果に適用されることを忘れていました。 – Adrian

関連する問題