dynamisches Filtern mit input_select () unter Verwendung von ggvis in R
Ich verwende die eingebaute "Kokain" -Datenbank, die mit dem @ komggvis
-Paket in R zur Visualisierung der Potenzwerte von Kokain in jedem Zustand. Das R-Paketdplyr
wurde auch verwendet.
Hier sind die ersten sechs Zeilen descocaine
datensatz:
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
Das Ziel war es, @ zu verwendinput_select()
it dem ggvis-Paket können Sie ein Dropdown-Menü erstellen, in dem Sie verschiedene Zustände auswählen und ein Histogramm der Potenzwerte für diesen Zustand anzeigen können. Das ist uns mit folgendem Code gelungen:
state <- as.vector(unique(cocaine$state))
cocaine %>%
ggvis(~potency) %>%
filter(state == eval(input_select(
choices = state,
selected = "NY",
label = "State"))) %>%
layer_histograms(binwidth = 2)
Die Frage ist, warum genau wir den Ausdruck braucheninput_select()
von @ "ausgewertet" werdeval()
. Eine Vermutung kann das sein, weilfilter
ist eine Funktion aus demdplyr
Paket und kommuniziert daher nicht in der Umgebung mitggvis
; eval
initialisiert es daher innerhalb desggvis
Umgebung. Vielleicht kann jemand mit einem Konzept mitreden, das uns dabei helfen könnte, dies zu visualisieren?