1

ユーザーが紙のデータシートから野生動物の捕獲データを入力するために使用するデータ入力フォームがあります。用紙には多くの同じフィールド (年齢、体重、性別など) がありますが、すべてが同じというわけではありません (たとえば、chest_girth のあるものとないものがあります)。シートも異なる順序で設定されており、光沢のあるフォームは紙シートのフィールドの順序と正確に一致する必要があります。

現在、ユーザーがドロップダウンから選択した種に応じて入力を表示する一連のuiOutput/ペアがあります。renderUIほとんどの種で同じデータが収集され、このデータはすべて同じテーブルに入力されるため、すべての種に対して 1 つの入力を使用したいと思います (たとえば、andinput$Ageではなく)。ただし、上で述べたように、順序はすべてのシートで異なるため、すべての種に同じフォームを使用するという提案はしないでください.input$BearAgeinput$ElkAge

shinyjs::show()と を使用して入力が表示されるかどうかを変更できることはわかっていますshinyjs::hide()が、ユーザー入力に基づいて既存のオブジェクトの順序を変更する方法はありrenderUIますか?

次のようになります。

library(shiny)
ui <- fluidPage(
fluidRow(
  column(3, selectInput(inputId = 'species', label = 'Species', choices = c('Elk', 'Bear', 'Deer'))),
  column(3, numericInput(inputId = 'age', label = 'Age', value = NA)),
  column(3, numericInput(inputId = 'weight', label = 'Weight', value = NA))
)

server <- function(input, output, session) {
  if (input$species == 'bear') {
    *switch the order of age and weight*
   }
4

1 に答える 1