消除 ggvis Shiny 中未使用的因子值

eliminate unused factor values in ggvis Shiny

我想从 ggvis 图中的 x-axis 中消除未使用的因子值。 我有 data.frame

choices <- c("Value1", "Value2",
                "Value3", "Value4",
                "Value5", "Value6",
                "Value7", "Value8",
                "Value9", "Value10",
                "Value11", "Value12")

levele <- c("AT1","AT2","AT3","AT4","AT5","RT1","AT6","AT7","AT8","AT9","AT10","RT2")

number_value1 <- sample(1:100,22)
number_value2 <- sample(1:100,22)

df1 <- data.frame(product = c(rep("Product1",12),rep("Product2",10)), name = c(choices,choices[1:10]),
                  short_name = c(levele,levele[1:10]),number = number_value1, number2 = number_value2) 

当我只想用基于 Product2 的数据创建一个 ggvis 时,我得到

df1 %>%
  dplyr::filter(product == "Product2") %>%
  ggvis(x = ~short_name,y =  ~number) %>%
  layer_points(size := 120,fill = ~short_name)

图中还显示了未使用的因子值。我不想看到,所以我使用 x = ~factor(short_name) 来消除这些未使用的案例。

df1 %>%
  dplyr::filter(product == "Product2") %>%
  ggvis(x = ~short_name,y =  ~number) %>%
  layer_points(size := 120,fill = ~short_name)

============================================= =======================
所以没关系。问题是当我想在有可能操纵轴的闪亮应用程序中做同样的事情时。有2个dataframes,其中有2个Products,不同数量的name。当我在结果的 Select Product 部分将 Product1 更改为 Produt2 时,我在 x 轴上有所有因子,还有未使用的因子。我的代码是 here。如果有人知道如何正确实施它?

正如@docendo discimus 指出的那样,您可以使用 droplevels。我分叉了您的代码并进行了更改 here

有可能。 只需要创建一个新的反应变量 datasetInput() 并更改一些代码行。 这里是my code.