我有一个包含三列和可变行数的表。我想创建一个列,以便新列的每一行都包含一个值为 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)
Run Code Online (Sandbox Code Playgroud)
对于这个表,三个 selectInputs 应该出现在表的旁边
这可能吗 ?
谢谢
这是使用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)
Run Code Online (Sandbox Code Playgroud)