У меня есть sliderInput (), максимальное значение которого я хотел бы изменить в зависимости от ввода пользователя. Я пытаюсь создать wordcloud, и код для wordcloud работает, только мой слайдер нуждается в корректировке. Итак, мой набор данных выглядит так:
document term count
1 code 1
1 help 28
1 stupid 4
1 shock 7
2 fire 2
2 fly 9
2 money 1
2 free 3
. . .
. . .
20
Я хочу, чтобы мое максимальное значение внутри функции sliderInput () автоматически устанавливалось с максимальным количеством для выбранного документа. Таким образом, пользователь может выбирать между разными документами от «1», «2» до «20». На основе выбора максимальное количество должно быть присвоено максимальному значению sliderInput (). В моем примере: при выборе документа 1 -> максимальное значение = 28. При выборе документа 2 -> максимальное значение = 9. У меня есть отфильтрованная функция, которую я использую на сервере. Если бы я мог использовать эту функцию внутри ui.R, моя проблема была бы решена, но нельзя использовать функции из внутреннего пользовательского интерфейса сервера. Как я могу решить эту проблему?
Код ui.R:
# Select document
box(
title = "Document Control",
status = "primary",
solidHeader = TRUE,
width = 4,
selectInput("doc", label="Select Document", choices = c(1:20), selected = 1)
),
# Slider
box(
title = "Frequency Control",
status = "primary",
solidHeader = TRUE,
width = 4,
height = 142,
sliderInput("minFreq", label = "Minimum Frequency", min = 1, max = ... , value = 15)
),
box(
title = "Number Control",
status = "primary",
solidHeader = TRUE,
width = 4,
height = 142,
sliderInput("maxNum", label = "Maximum Number of Words", min = 1, max = 400, value = 150)
),
Код сервера:
filtered <- reactive({
Wcloud.Data.filtered <- Wcloud.Data %>%
filter(document == input$doc)
})
output$plotWcloud <- renderPlot({
wordcloud(words = filtered()$term, freq = filtered()$count,
min.freq = input$minFreq, max.words = input$maxNum, random.order=FALSE,
rot.per=0.35, colors=brewer.pal(8, "Dark2"))
})