在闪亮的应用程序中显示数据表,以checkboxGroupInput为条件显示的列

时间:2015-03-25 09:50:40

标签: r shiny rstudio

我正在尝试在闪亮的应用中呈现数据表。当我在没有任何条件参数的情况下通过它时它显示得很好。当我尝试使显示的变量以checkBoxGroup小部件的输入为条件时出现问题。 这是我的代码的相关部分:

server.R

library(shiny)
library(ggplot2)
library(pander)
library(plyr)

load("data/ages.data.rda")
load("data/test.data.rda")
load("data/refine.data.rda")
shinyServer(function(input, output) {

  output$tafla.gogn <- renderDataTable({

dataset <- switch(input$data,
                  "study1" = ages.data,
                  "study2" = test.data
                 )
dataset[,input$breytur, drop = F]
 }, options=list(pageLength=10, searchDelay=500))

})

ui.R

shinyUI(navbarPage(img(src="logo.png"), theme="bootstrap.css",        collapsible=T, windowTitle="My research",
tabPanel("Tables",
sidebarLayout(
  sidebarPanel(
    #The problem arises when I try to use this widget, I suspect it has something to do with me calling the output$dataset.
    checkboxGroupInput("breytur", label="Hvaða dálka viltu sjá?", choices =  names("output$dataset"), selected = names("output$dataset")) 
  ),
  mainPanel(        
     h2("Selected data"),
     dataTableOutput("tafla.gogn")

     )
   )
   ))
  ))

当我运行应用程序时,我收到错误:     听[删除]     mapply中的错误(ID,选项,名称(选项),FUN =函数(id,value,:       零长度输入不能与非零长度的输入混合     mapply中的错误(ID,选项,名称(选项),FUN =函数(id,value,:       零长度输入不能与非零长度的输入混合

数据从.rda文件加载为我的应用程序中数据文件夹中的data.frames。

1 个答案:

答案 0 :(得分:0)

我通过在服务器脚本中创建CheckboxGroupInput并呈现UI来做类似的事情。 [我想分享一种如何实现这一点的方式 - 懒得添加代码] 回答代码:

Server.r:

  ages.data <- load("data/ages.data.rda")
  test.data <- load("data/test.data.rda")
  data_sets <- c("ages.data","test.data")

  shinyServer(function(input, output) {

  output$choose_dataset <- renderUI({
    selectInput("Dataset",label = "choose a dataset",as.list(data_sets))

  })

  output$choose_columns <- renderUI({

    if(is.null(input$Dataset))
      return()


    dat <- get(input$Dataset)
    colnames <- names(dat)


   checkboxGroupInput("columns", "Choose columns", 
                       choices  = colnames,
                       selected = colnames)





  })

ui.r

    shinyUI(navbarPage(img(src="logo.png"), theme="bootstrap.css",        collapsible=T, windowTitle="My research",
tabPanel("Tables",
sidebarLayout(
  sidebarPanel(
   uiOutput("choose_dataset"),
   uiOutput("choose_columns") 
  ),