5

次の例では、numberInput「C 番号」は、「A 番号」を「B 番号」で割った値として計算および更新されます。結果が無限小数の場合は、桁数の多い数から「数C」になります。無限小数を2桁目か3桁目に四捨五入して、「数字C」の見栄えを良くしたいと思います。同時に、実際には「数C」を他の計算に適用したいので、round関数を適用したくありません。数値をそのまま使用したいのです。num_C言い換えれば、Excelスプレッドシートのセルをフォーマットして、限られた数字のみを表示し、実際の値を変更しないように、数値の外観をフォーマットするが実際の値をフォーマットしない方法を見つけたいと考えています。これはシャイニーで行うことは可能ですか?

library(shiny)

# Define UI
ui <- fluidPage(
  numericInput(inputId = "A", "Number A", value = 2),
  numericInput(inputId = "B", "Number B", value = 3),
  numericInput(inputId = "C", "Number C [A/B]", value = 1)
)

# Server logic
server <- function(input, output, session){

  observe({
    req(input$A, input$B)
    num_C <- input$A/input$B
    updateNumericInput(
      inputId = "C",
      session = session,
      value = num_C
    )
  })
}

# Complete app with UI and server components
shinyApp(ui, server)
4

3 に答える 3