Динамическая фильтрация с помощью input_select() с использованием ggvis в R
Я использую встроенную базу данных "кокаина", которая поставляется с ggvis
упаковка в R для визуализации количества потенции кокаина в каждом состоянии. Пакет R dplyr
также был использован.
Вот первые шесть строк 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
среда. Возможно, кто-то может присоединиться к концепции, которая может помочь нам визуализировать это?