如何使用数据帧信息以闪亮的R形式自动填充字段



我正在rstudio中的闪亮软件包中编程。但是我想使用我的DataFrames信息创建自动填充表单。我将举一个例子。

让我们假设我有一个带有三列的data.frame。第一个包含我的学生的名字,第二个包含他的年龄,而他过去的最后一年级的第三个。我创建了一个完全具有三个选择输入字段的表单。第一个选择名称,第二个输入编号选择年龄,最后一个选择他的最后一年级。我想要在第一个字段中选择学生的名称时,其他字段会自动完成信息。

谢谢!

我想这就是您要寻找的:

我使用的数据集如下所示。我从csv文件中加载了相同的数据。

autoFillDF <- structure(list(Name = c("ABC", "XYZ", "PQR"), Age = c(30L, 24L, 
27L), Grade = c("A", "B", "D")), .Names = c("Name", "Age", "Grade"
), class = "data.frame", row.names = c(NA, -3L))

ui.r代码

shinyUI(fluidPage(
  titlePanel("Auto Fill"),
    sidebarPanel(
      selectizeInput("p1", choices = autoFillDF$Name, selected = NULL, label = 'Name'),
      selectizeInput("p2", choices = NULL, label = 'Age'),
      selectizeInput("p3", choices = NULL, label = 'Grade')
    ),
    mainPanel(
      DT::dataTableOutput('table')
    )
  )
)

server.r代码

autoFillDF <- read.csv('..../test.csv', stringsAsFactors = FALSE)
shinyServer(function(input, output, session) {
  updateApp <- reactive({
    data <- autoFillDF
    data <- data[data$Name %in% input$p1,]
    updateSelectizeInput(session, 'p2', choices = data$Age, selected = data$Age, server = TRUE)
    updateSelectizeInput(session, 'p3', choices = data$Grade, selected = data$Grade, server = TRUE)
    data
  })
  output$table <- DT::renderDataTable(
    DT::datatable(updateApp()) 
  )
})

最新更新