2016-04-25 84 views
0

我需要填充R闪亮复选框与SQL查询结果请帮助。r闪亮的sqlquery - 从sql查询结果填充复选框

以下是完整的代码和下面这个问题的具体描述:

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

如果你读了checkboxGroupInput的文档,它说本作的choices参数值的

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

因此,您只需将sql结果转换为未命名的结构,或手动将名称设置为NULL即可。

+0

嗨,感谢您的输入。我试过这个:'choices = c(“Acuity”= res [1,1]',它返回“Acuity”而不是“1”。但问题是这个列表可能会改变,我必须以某种方式自动化它。 '不知道如何将sql结果转换为未命名的结构..? – charliealpha

+0

我做了这个改变: - rownames(res)< - res $ name和choices = rownames(res)..不是一个真正的解决方案,但它可以工作谢谢 – charliealpha

+0

我想你可以使用'as.vector(res $ name)' –