R shiny:如何使用HTML在server.r中生成滑块

时间:2014-03-08 19:12:22

标签: r slider shiny

我想在我的服务器中生成滑块(因为我需要的滑块数量取决于其他输入)。正如您将看到下面的代码和图片,出现的滑块看起来不太好。我认为它与我在HTML中指定它们的方式有关(可能与style / css有关吗?)。

以下是代码:

ui <- pageWithSidebar(
headerPanel("test"),
sidebarPanel(
helpText('these sliders do not look good:')  
),

mainPanel(uiOutput('slider'))
)

server <- function(input,output, session){  

output$slider <- renderTable({  
inputs <- paste0("<input id='Sl_C", 1:2, "' class='jslider-pointer jslider-pointer-to'   type = 'range' value='c(0,20)' min='0' max='100'>")  

matrix <- data.frame(inputs)   
},sanitize.text.function = function(x) x)

}

runApp(list(ui=ui,server=server))

任何建议/建议都将受到高度赞赏。

所有最好的enter image description here

1 个答案:

答案 0 :(得分:3)

这是实现多个滑块输入的一种方法。

library(shiny)
multiSliders = function(n, ...){
  sliders = lapply(1:n, function(i){
    sliderInput(paste0('slider-', i),  paste('Slider', i), ...)
  })
  paste_all = function(...) paste(..., collapse = '\n')
  HTML(do.call('paste_all', sliders))
}

runApp(list(
  ui = pageWithSidebar(
    headerPanel('Multiple Sliders'),
    sidebarPanel(
      sliderInput('slider-0', 'Slider0', 0, 10, 4),
      multiSliders(2, 0, 10, 4)
    ),
    mainPanel()
  ),
  server = function(input, output){

  }

))