Ich versuche, die neue Implementierung der Standardauswertung in dplyr
v.0.6.0 herauszufinden. Ich habe mich durch die Vignette gearbeitet, aber ich kämpfe immer noch, wenn ich einen Ausdruck erstelle, der in mutate
ausgewertet werden soll.dplyr v.0.6.0 Standardbewertung mutieren
Angenommen, ich möchte eine Funktion erstellen, die einen Dummy zu einer x
für jede Zeile hinzufügt, wobei var
gleich value
ist. Es sollte sowohl bei NA
Werten als auch bei regulären Werten funktionieren.
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)
}
nun folgende Arbeiten fein
x <- data.frame(some_var = c(NA, 2))
make_dummy_at_value(x, some_var, NA)
Allerdings bedeutet dies nicht
make_dummy_at_value(x, some_var, 2)
Ich denke, wir nur einen nicht notierten Ausdruck in der mutate
Anweisung setzen, aber wie es zu implementieren dann?
Prost
Wolltest du 'if (is.na (!! value_e))' in Zeile 5 schreiben? – FlorianGD