我有一个具有三列和可变行数的表。我想创建一列,以使新列的每一行都包含一个值为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应该出现在表旁边
这可能吗?
谢谢
答案 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)