表中每行的SelectInput

时间:2018-11-09 17:34:21

标签: r shiny

我有一个具有三列和可变行数的表。我想创建一列,以使新列的每一行都包含一个值为yes / no的selectInput。

在坚果壳中,如何自动生成等于表中行数的selectInput

这是一个简单的代码:

library(shiny)
library(rhandsontable)

ui <- fluidPage(

  tableOutput('Simpletable')

)

server <- function(input,output,session)({

  data <- data.frame(c1=c(5,10,15), c2=c(3,6,9) , diff=c(0,0,0), select= as.logical( c(FALSE,FALSE,FALSE)))


  output$Simpletable <- renderTable(
    data
  )

}) 

shinyApp(ui = ui, server = server) 

对于此表,三个selectInputs应该出现在表旁边

这可能吗?

谢谢

1 个答案:

答案 0 :(得分:1)

这是使用library(DT)的解决方案。到目前为止,selectInputs不会执行任何操作,因为我不知道您的意图是什么。

library(shiny)
library(DT)
library(data.table)

ui <- fluidPage(
  dataTableOutput('myTableOutput')
)

server <- function(input, output, session){

  myTable <- data.table(c1=c(5,10,15), c2=c(3,6,9) , diff=c(0,0,0))

  inputVec <- vector(mode = "character", length = 0)
  for(i in seq(nrow(myTable))){
    inputVec[i] <- as.character(selectInput(inputId=paste0("row_select_", i), label=NULL, choices=c(yes=TRUE, no=FALSE)))
  }

  myTable[, select := inputVec]
  output$myTableOutput <- DT::renderDataTable({myTable}, escape=FALSE)
} 

shinyApp(ui = ui, server = server)