динамическая фильтрация с помощью input_select () с использованием ggvis в R
Я использую встроенную базу данных "кокаина", которая поставляется сggvis
упаковка в R, чтобы визуализировать количество потенции кокаина в каждом состоянии. Пакет Rdplyr
также был использован.
Вот первые шесть строкcocaine
Набор данных:
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
Целью было использоватьinput_select()
в пакете ggvis создать раскрывающееся меню, в котором можно выбрать различные состояния и посмотреть гистограмму подсчета активности для этого состояния. Нам удалось сделать это с помощью этого кода:
state <- as.vector(unique(cocaine$state))
cocaine %>%
ggvis(~potency) %>%
filter(state == eval(input_select(
choices = state,
selected = "NY",
label = "State"))) %>%
layer_histograms(binwidth = 2)
Вопрос в том, почему именно нам нужно выражениеinput_select()
быть "оцененным"eval()
. Догадка может быть, потому чтоfilter
это функция изdplyr
пакет и, следовательно, не общается в окружающей среде сggvis
; eval
поэтому инициализирует его в пределахggvis
среда. Возможно, кто-то может присоединиться к концепции, которая может помочь нам визуализировать это?