创建基于R中的输入进行更新的单选按钮

创建基于R中的输入进行更新的单选按钮,r,shiny,R,Shiny,我希望在一个闪亮的应用程序中创建一组单选按钮,根据用户输入进行更新。基本上,用户将选择一个问题,相应的答案选项将是单选按钮的更新选项。我无法更新按钮。谁能给我指出正确的方向吗 非常抱歉的格式化,第一次使用这个网站 到目前为止,我已经: questions <- read.csv("~/Answers.csv") library(shiny) ui <- fluidPage( selectInput("numberchoice",label = "Choose an imag

我希望在一个闪亮的应用程序中创建一组单选按钮,根据用户输入进行更新。基本上,用户将选择一个问题,相应的答案选项将是单选按钮的更新选项。我无法更新按钮。谁能给我指出正确的方向吗

非常抱歉的格式化,第一次使用这个网站

到目前为止,我已经:

questions <- read.csv("~/Answers.csv")
library(shiny)


ui <- fluidPage(

  selectInput("numberchoice",label = "Choose an image", choices = c(1:6), 
 selected = 1)
,
imageOutput("image")
,
radioButtons("answerchoice","",choiceNames = c("A","B","C","D","E"), 
choiceValues = questions[3,2:6])

)

server <- function(input,output,session) {
answers <- read.csv("~Answers.csv")
output$image <- renderImage(list(src=
paste("~",
input$numberchoice,".png", sep = "")
,contentType = "image/png", alt = "Face"),deleteFile = FALSE)
updateRadioButtons(session,"answerchoice",choices = 
questions[input$numberchoice,2:5]


}

shinyApp(ui = ui, server = server)`

问题您只需执行
观察
输入$numberchoice进行更改,并在更改发生后更新单选按钮:

# observe input$numberchoice and update answer radioButtons accordingly
observeEvent(input$numberchoice, {
    updateRadioButtons(session,"answerchoice",choices = questions[input$numberchoice,2:5])
})
或者,如果要避免观察事件,可以将整个答案输出放在服务器中,以便在每次更改
输入$numberchoice
时更新:

用户界面: 服务器:
输出$answerchoice
uiOutput("answerchoice")
output$answerchoice <- renderUI({
    radioButtons("answerchoice", "", choiceNames = c("A","B","C","D","E"), 
                 choiceValues = questions[input$numberchoice,2:5])
})