filtrado dinámico con input_select () usando ggvis en R
Estoy usando la base de datos "cocaína" integrada que viene con elggvis
paquete en R para visualizar los recuentos de potencia de cocaína en cada estado. El paquete Rdplyr
También fue utilizado.
Aquí están las primeras seis líneas delcocaine
conjunto de datos:
state potency weight month price
1 WA 77 217 1 5000
2 CT 51 248 1 4800
3 FL 68 43 1 3500
4 OH 69 123 1 3500
5 MS 75 118 1 3400
6 VA 73 127 1 3000
El objetivo era usarinput_select()
dentro del paquete ggvis para crear un menú desplegable donde uno podría seleccionar varios estados y ver un histograma de los recuentos de potencia para ese estado. Logramos hacer eso con este código:
state <- as.vector(unique(cocaine$state))
cocaine %>%
ggvis(~potency) %>%
filter(state == eval(input_select(
choices = state,
selected = "NY",
label = "State"))) %>%
layer_histograms(binwidth = 2)
La pregunta es por qué exactamente necesitamos la expresióninput_select()
ser "evaluado" poreval()
. Una suposición puede ser eso porquefilter
es una función deldplyr
paquete y por lo tanto no se comunica en el entorno conggvis
; eval
por lo tanto lo inicializa dentro delggvis
ambiente. ¿Quizás alguien puede intervenir con un concepto que nos puede ayudar a visualizar esto?