Ich versuche, dplyr in der Programmierung zu verwenden: Filterverhalten mit zitierten Variablen sind nicht verständlich. Nach mehreren Versuchen, die realen Daten zu analysieren, hatte ich folgende Dummy-Daten erstellt.dplyr Programmierung: unerwartetes Verhalten des Filters
dt <- data.frame(
sex = rep(c("F","M"), 50),
height = runif(100, 1, 1000),
weight = rep(c(2, 100), 50),
value = runif(100, 1, 1000),
stringsAsFactors = FALSE
)
library(dplyr)
wizzard_fun_1 <- function(param1){
par1 <- enquo(param1)
dt %>% select(height, !!par1)
}
wizzard_fun_1("sex")
# as expected
#1 74.875344 F
#2 846.614856 M
#.....
wizzard_fun_2 <- function(param1){
par1 <- enquo(param1)
dt %>% select(height, !!par1) %>%
filter((!!par1) == 'M')
}
wizzard_fun_2('sex')
#[1] height sex
# ... zero rows....
Was läuft falsch? Vielen Dank im Voraus für irgendwelche Ideen!
See [hier] (https://stackoverflow.com/questions/44121728/programming-with-dplyr-using-string-as-input/44122936#44122936) für die Arbeit mit Zeichenfolgen als Eingabe. – aosmith