5

我正在使用 R 中的软件包附带的内置“可卡因”数据库ggvis来可视化每个州的可卡因效力计数。dplyr还使用了 R 包。

这是数据集的前六行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环境中初始化它。也许有人可以提出一个可以帮助我们形象化的概念?

4

0 回答 0