R 为表格中的每一行选择Input

R 为表格中的每一行选择Input,r,shiny,R,Shiny,我有一个表,它有三列,行数可变。我想创建一个列,使新列的每一行都包含一个值为Yes/No的selectInput 在shell中,如何自动生成与表中的行数相等的selectInput 下面是一个简单的代码: library(shiny) library(rhandsontable) ui <- fluidPage( tableOutput('Simpletable') ) server <- function(input,output,session)({ data

我有一个表,它有三列,行数可变。我想创建一个列,使新列的每一行都包含一个值为Yes/No的selectInput

在shell中,如何自动生成与表中的行数相等的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) 
库(闪亮)
图书馆(rhandsontable)

ui这里有一个使用
库(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) 
库(闪亮)
图书馆(DT)
库(数据表)

ui您使用
selectInputs
的目的是什么?有趣的是,如果从输入中选择了yes,我如何制作差异列来计算C1和C2之间的差异?您需要编写一个JS回调函数。有关示例,请参见。