私自身の関数内で、文字列をdplyrパッケージのfilter_
関数への入力として渡す方法を探しています。私は、データフレームをフィルタリングする「りんご」や「バナナ」のいずれかを渡すことが可能な機能を書くための方法を探しています関数内で文字列をdplyrフィルタに渡すにはどうすればよいですか?
df = data.frame(
X1 = LETTERS[1:5],
X2 = c("apple", "apple", "apple", "banana", "banana")
)
次のように私は、データフレームを設定しています。
私が試してみました:
filterFruit = function(Data, Fruit){
retVal = filter_(Data, "X2 == Fruit")
return(retVal)
}
は、次に値を渡す:
apple1 = filterFruit(df, "apple")
apple1
これがエラーをreturneなります
Error: object 'Fruit' not found
私はこれを行うためのいくつかの他の方法を試してみました成功していないと、誰かが助けてくれることを願っています。
編集:
私はそれは私がすることによってフィルタリングしていますし、ちょうど引用符なしでフィルタに引数を渡すことができますどの列選択わけではないとして、この操作にfilter_使用する必要がないことを実現しています。質問はまだあなたが持っていた場合についてただし略:
df = data.frame(
X1 = LETTERS[1:5],
X2 = c("apple", "apple", "apple", "banana", "banana")
X3 = c("apple", "banana", "apple", banana", "apple")
)
、あなたがすることによってフィルタリングする必要がある列(X2またはX3)を決定する必要があります。
'filter_(データ、ペースト( "X2 =="、フルーツ))'あなたは、文字列を構築するためのペーストを使用することができます。 – Psidom
'filter(Data、X2 == as.character(Fruit))' – GGamba
@ Rich Scriven間違ったタイミングでピックアップしていただきありがとうございました – Jamesm131