@daattli Grazie per avermi giusta direzione e avermi permesso di sapere come utilizzare js
di cambiare l'elemento lucido.
Ho implementato una soluzione per modificare le etichette di sliderInput
e un selectInput
per passare valori diversi (e lunghezza). Penso che questa funzionalità dovrebbe essere implementata in lucido che utilizza ionRangeSlider
.
Si prega di migliorare i miei codici se si pensa che ci sia un modo migliore per implementarlo, in quanto è il mio primo script js
.
library(shiny)
values <- list(A = c('A1', 'A2', 'A3'),
B = c('B1', 'B2', 'B3', 'B4'))
ui <- shinyUI(bootstrapPage(
selectInput('selection', 'selection', c('A', 'B'), 'A'),
uiOutput('selectUI'),
sliderInput(inputId = "target", label = "Target",
min = 0, max = length(values$A) - 1,
step = 1,
value = length(values$A) - 1),
verbatimTextOutput('summary')
))
server <- shinyServer(function(input, output, session) {
output$summary <- renderPrint({
print(input$target)
print(values[[input$selection]][input$target + 1])
})
output$selectUI <- renderUI({
sel_values <- paste(paste0('"', values[[input$selection]], '"'), collapse = ',')
print(sel_values)
list(
(HTML(
sprintf('
<script type="text/javascript">
$(document).ready(function() {
var vals = [%s];
$(\'#target\').data(\'ionRangeSlider\').update(
{values:vals,
min: 0,
max: %s,
from:%s})
})
</script>
', sel_values,
length(values[[input$selection]]) - 1,
length(values[[input$selection]]) - 1)))
)}
)}
)
shinyApp(ui = ui, server = server)
Cosa fa la seconda linea? Convertire i vettori di caratteri in date? Questo non funziona. – Gopala
@Gopala. Spiacenti, ho corretto i codici errati – Bangyou
Se stai veramente cercando di utilizzare gli input categoriali, dovresti usare selectInput (menu a tendina) o radio. L'input del cursore è in realtà per i valori numerici e il tentativo di adattarsi alle etichette dei caratteri non è il modo in cui è progettato per funzionare. – Gopala