r shiny sqlquery - 从sql查询结果中填充复选框

时间:2016-04-25 15:17:30

标签: r shiny rodbc

我需要帮助使用SQL查询来填充R闪亮复选框。

以下是完整代码和问题的具体说明:

library(shiny)
library(RODBC)

dbhandle <- odbcDriverConnect('driver={SQL Server};server="" ;database="";trusted_connection=true')
res <- sqlQuery(dbhandle, 'select name from analysis order by name asc')

shinyUI(fluidPage(
    mainPanel(
    textOutput("text1"),
    checkboxGroupInput("checkGroup", 
                       label = h3("Choose contracts"), 
                       choices = res$name,
                       selected = NULL),
    actionButton("action", label = "Create Portfolio EP")
    )

))

library(shiny)
shinyServer(function(input, output) {
  observe({
    if(input$action>0 & input$action<=2){
      valores<-renderText({
        input$checkGroup
      })
      data<-unlist(strsplit(valores(), split=" "))
      print(data)
    }
  })
})

问题是复选框会返回:

1
2

和sql中的sql结果如下:

   name
1  a
2  b 

所以看起来结果需要格式化为R才能正确捕获。

请问任何想法?

谢谢。

1 个答案:

答案 0 :(得分:1)

如果您阅读了checkboxGroupInput的文档,则会为choices参数

说明这一点
  

显示复选框的值列表。如果列表的元素是   然后命名该名称,而不是显示给用户的值。

所以你需要做的就是将sql结果转换为一个未命名的结构,或者手动将名称设置为NULL。