使用R中的ggvis使用input_select()进行动态过滤

时间:2014-09-17 12:48:11

标签: r dynamic filtering dplyr ggvis

我使用内置的"可卡因" R中的ggvis包附带的数据库,用于显示每个州的可卡因效力计数。还使用了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

目标是在ggvis包中使用input_select()创建一个下拉菜单,其中可以选择各种状态并查看该状态的效力计数的直方图。我们设法用这段代码做到了:

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()进行评估&#34; eval()猜测可能是因为filter是来自dplyr包的函数,因此不会在环境中与ggvis进行通信;因此,eval会在ggvis环境中对其进行初始化。也许有人可以使用一个可以帮助我们想象这个概念的概念?

0 个答案:

没有答案