私はdplyr
v.0.6.0で標準評価の新しい実装を理解しようとしています。私はビネットを通って仕事をしてきましたが、評価する式を作成するときにはまだ苦労していますmutate
。dplyr v.0.6.0標準評価の変異
var
がvalue
に等しい各行に対してx
にダミーを追加する関数を作成したいとします。それはNA
の値と通常の値の両方で動作するはずです。
library(dplyr)
make_dummy_at_value <- function(x, var, value) {
var_e <- enquo(var)
value_e <- enquo(value)
if (is.na(value)) {
x <- x %>% mutate(dum = as.numeric(is.na(!!var_e)))
} else {
x <- x %>% mutate(dum = as.numeric(!!var_e == !!value_e))
}
return(x)
}
さて、次は大丈夫
x <- data.frame(some_var = c(NA, 2))
make_dummy_at_value(x, some_var, NA)
しかし、これは
make_dummy_at_value(x, some_var, 2)
私たちは唯一mutate
文で1つのクォートされていない表現を置くことができると思いませんが、それを実装する方法を動作しますそれで?それが数値要素ではなく引用符で囲んだ文字列であるよう
乾杯
5行目に 'if(is.na(!! value_e))'を書くのですか? – FlorianGD