Мы разрешаем пользователям обновлять любой из 3 входов. Блестящий рассчитывает соотношение между ними и отображает в%. Тем не менее, это отображаемое значение можно редактировать в блестящем.
Поскольку отображаемое значение необходимо для дальнейшего расчета в коде, такое поведение нежелательно.
Следовательно, кто-то может помочь отобразить значения в%, но позволить пользователю не редактировать их.
Пожалуйста, найдите ниже представленный код. Пытался
1. Сделать как печать и спринт, но трудно отформатировать
2. Отключил renderUI, но затем код не работал, так как renderUI не запускался.
library(shiny)
ui <- fluidPage(
column(6,
tags$h2("Allow the user to change only here"),
numericInput("valueA", "Value1", value = .333, min = 0, max = 1, step = .1),
numericInput("valueB", "Value2", value = .333, min = 0, max = 1, step = .1),
numericInput("valueC", "Value3", value = .333, min = 0, max = 1, step = .1),
verbatimTextOutput("result")
),
column(6,
uiOutput("ui")
)
)
server <- function(input, output, session) {
output$ui <- renderUI( {
tagList(
tags$h2("Display in % but dont allow user to change here"),
numericInput("obs1", "Label1", value = 100 * (input$valueA / (input$valueA + input$valueB + input$valueC))),
numericInput("obs2", "Label2", value = 100 * (input$valueB / (input$valueA + input$valueB + input$valueC))),
numericInput("obs3", "Label3", value = 100 * (input$valueC / (input$valueA + input$valueB + input$valueC)))
)
})
# Since the below option is hard to render like above
# output$result <- renderPrint({
# print(sprintf("A=%.3f, B = %.3f",
# input$obs1,input$obs2))
# })
#### Code to use the values from obs1,obs2,obs3....
}
shinyApp(ui, server)
В основном, 3 значения, где пользователи могут редактировать и отношения (%) должны отображаться. Однако эти проценты не должны редактироваться .