次の例では、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)