【问题标题】:R Shiny slider step argumentR Shiny 滑块步进参数
【发布时间】:2019-10-07 14:49:01
【问题描述】:

我的数据框中有一列只是年份和月份的组合

Yearmonth 
----------
200912
201001
201002
201003
201004
201005
.
.
.
.

我的 R 闪亮仪表板中需要一个滑块,该滑块从该列的最小值到最大值,但在该列中的值递增。

例如, 我希望我的滑块从 200912 到 201001 到 201002 等一直到最大值。

我已经尝试过了,但在这种情况下,我的步长是 1,所以我得到了值之间的所有中间值。

ui <- fluidPage(
  titlePanel("censusVis"),

  sidebarLayout(
    sidebarPanel(

      sliderInput("month",
                  "Month:",
                  min = min(Yearmonth),
                  max = max(Yearmonth),
                  value =min(Yearmonth),
                  step = 1),
    ),
    mainPanel(
    )
  )
)

有人可以帮我吗?我最近才开始使用 Shiny!

【问题讨论】:

  • 在这种情况下没有可以帮助您的步长值,因为您没有选择一系列连续值。我想也许格式化选项可以让你将一个简单的整数映射到年/月值,但它似乎没有那么灵活。您可能必须编写自定义 HTML UI 元素才能获得准确的行为。
  • 另一个可能的重复:stackoverflow.com/questions/37689689/…

标签: r shiny


【解决方案1】:

我之前使用了shinyWidgets 包中的sliderTextInput 来实现这个效果。根据您的 data.frame 的名称,它应该转换为以下内容

  sliderTextInput("month",
                  "Month:",
                  choices = sort(unique(my_data$Yearmonth)))

请注意,如果您这样做,您需要将 input$month 的值转换回您想要的数字。

【讨论】:

  • 谢谢!这很好用!您知道如何将其更改为可以选择范围的滑块吗?就像我想选择 201001 和 201005 @Martin 之间的所有内容一样
  • 目前,这只是选择单个值
  • 要做一个范围,你只需将一个长度为 2 的向量传递给选定的参数,例如selected=c("201001", "201005") 那么你可以在你的服务器代码中获取它们: input$month[1] 和 input$month[2]
  • 谢谢!我可以将这个从 201001 到 201005 的范围传递给我的直方图,以便它只显示这些 X 值 201001、201002、201003、201004、201005 的 y 值吗?
  • 是的,您应该能够在您的 plotOutput() 函数中访问它们。您需要添加一些行以将数据集过滤到 yearmonth >= as.numeric(input$month[1]) 和
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-06
  • 2014-07-29
  • 2015-04-15
  • 2015-10-16
  • 2021-10-12
  • 1970-01-01
  • 2017-09-06
相关资源
最近更新 更多