dplyr
からfilter
までのデータをテスト条件に基づいて使用しようとしていますが、このテスト条件は他の変数によって変わる可能性があります。テスト条件を使用してdplyrでデータをフィルタリングする
if (foo == 0) {
test <- speed > 15
} else {
test <- dist < 50
}
filter(cars, test)
これは動作しません:私はこのような何かをしたいと思います
data(cars)
:サンプルデータセットcars
に建てを使用して
。
if (foo == 0) {
test <- 'cars$speed > 15'
} else {
test <- 'cars$dist < 50'
}
filter(cars, eval(parse(text = test)))
しかし
- が
cars$speed
とcars$dist
filter
機能を使用する目的を破るように見えるを入力すること:私はこのような何かにそれを変更した場合、私はそれが仕事を得ることができます。 - thisによると、
eval(parse(text = ...))
の使用はお勧めできません。
これを実現する方法はありますか?
感謝を!私は 'cars [test、]'がこのケースのより良い解決策になることに同意します。これは質問のための最小限のコードスニペットのための単純な例でした。何らかの理由で、これは私がdf、column、およびvalueを取り込み、フィルタリングされた結果セットを返す関数にこれを埋め込もうとしたときには機能しませんでした。しかし実際には、この種のロジックを使用して実際に動作しているようです。 – Steve