从两个单选按钮中读取两列的名称,并将它们的向量放在R Shiny

时间:2017-03-01 21:24:44

标签: shiny

我有一组内置数据。目标是从两个RadioButton中读取两列的名称,然后从所选列中创建一个DataFrame。我在这里做了这个可重复的例子。

如果你运行

 output$mytable = renderDataTable(vector1)

 output$mytable = renderDataTable(vector2)

另外,您会发现每个observeEvents都正常工作但我已经卡住了,我无法将这些列放在一起。

P.S.1。我知道最后两行会出错,因为最初没有vector1vector2。因此,我把#做出评论。

P.S.2。我需要在另一个地方使用结果数据框。这就是为什么我坚持要形成一个数据框架。

library(shiny)

vchoices <- 1:ncol(mtcars)
names(vchoices) <- names(mtcars)

runApp(list(
  ui = basicPage(
    h2('The mtcars data'),
    radioButtons(
      "column1",
      "select columns",
      choices = vchoices,
      inline = T
    ),
    radioButtons(
      "column2",
      "select columns",
      choices = vchoices,
      inline = T
    ),
    dataTableOutput('mytable')
  ),

  server = function(input, output) {
    observeEvent(input$column1, {
      cols1 <- as.numeric(input$column1)
      vector1 <- data.frame(mtcars[, cols1])
      names(vector1) <- c("Firstcolumn")
      #output$mytable = renderDataTable(vector1)
    })

    observeEvent(input$column2, {
      cols2 <- as.numeric(input$column2)
      vector2 <- data.frame(mtcars[, cols2])
      names(vector2) <- c("Firstcolumn")
      #output$mytable = renderDataTable(vector2)
    })
    #z <- cbind(vector1, vector2)
    #output$mytable = renderDataTable(z)
    }
 ))

1 个答案:

答案 0 :(得分:0)

如果您想分两步完成,可以使用UV Tile

reactive