と重なる変数名はのが、私はそうのように構築(dplyr/tibble)データ・フレーム/ TBLを持っているとしましょう:dplyrと周囲の環境
今df <- data_frame(x = 1:10)
、私はその関数内でこれを使用したいのですが
myfun <- function(df, x) {
x <- doSomeStuffTo(x)
filter(df, x == x)
}
しかし、これは常にフルdf
を返します...私はdplyr動詞の中にスコープを実装する方法を把握しようとしている、のようなもの:
df
で動作します
filter_(df, ~x == x)
...どちらも動作しません。 this
がdf
インスタンスを参照
df.filter(this.x == x)
...:いくつかの他の言語では、あなたのような何かを経由してこれを達成することができるかもしれません。
私の唯一の回避策これまでのところのように、関数の変数を命名されています
myfun <- function(df, query_x) {
query_x <- doSomeStuffTo(query_x)
filter(df, x == query_x)
}
私は、これはなんとかです疑う動詞dplyr SEで何とかを(query_x
のような名前を使用せずに)(例えばfilter_
を)しかし、私は正しいパターンをまだ見つけていません。誰でも答えがありますか?
単純に 'y < - doSomeStuffTo(x);を実行しない理由があるかもしれません。フィルタ(df、x == y) '? – Frank
いいえ、それはおそらく私がやったことでしょう。私の意見では最も簡単なことですが、OPはいくつかの選択肢を求めていました。 – MrFlick
ええ、たぶん私は質問を言い直してください。私は新しい変数の名前を割り当てる方法を知っていますが、各変数の言及の正確な範囲を指定するために、(SEまたはNSEのいずれかの)dplyrの動詞に範囲指定の仕掛けがないかどうかはわかりません。 – mmuurr