首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用actionButton Shiny对命名列表进行排序

使用actionButton Shiny对命名列表进行排序
EN

Stack Overflow用户
提问于 2017-01-26 05:34:25
回答 1查看 687关注 0票数 1

我有一个名单如下:

代码语言:javascript
复制
vegshop <- list(
    "FRUITS" = c("MANGO", "JACKFRUIT", "BANANA"),
    'VEGETABLES' = c("OKRA", "BEANS", "CABBAGE")
)

我试着根据名字来排序这个列表,这个很好。

代码语言:javascript
复制
vegshop[order(names(vegshop), decreasing = F)]

然而,当我尝试使用actionButton()时,我会得到以下错误:

代码语言:javascript
复制
the condition has `length > 1` and only the first element will be used

代码语言:javascript
复制
Warning: Error in order: unimplemented type 'list' in 'orderVector1'

一个可行的例子如下:

代码语言:javascript
复制
vegshop <- list(
    "FRUITS" = c("MANGO", "JACKFRUIT", "BANANA"),
    'VEGETABLES' = c("OKRA", "BEANS", "CABBAGE")
)
grocer <- list(
    "GROCERY" = c("CEREALS", "PULSES", "TOILETRIES"),
    "CLEANERS" = c("DETERGENTS", "FLOOR CLEANERS", "WIPES")
)

library(shiny)

ui <- shinyUI(
    fluidPage(
    actionButton(style = "font-size: 10px;",inputId = "a2z", label = "Sort-A-Z", icon = icon("sort-alpha-asc")),
    radioButtons(inputId = "shopsel", label = "SELECT SHOP", choices = c("SHOPS","SUPERMARKETS"), selected = "SHOPS", inline = TRUE),
    uiOutput("shoplist")))

server <- function(session,input, output) {
    output$shoplist <- renderUI({
        if(input$shopsel == "SHOPS") {
         selectInput(inputId = "vegShopList", label = "SHOPLIST", choices = vegshop, selected = c('MANGO', 'JACKFRUIT', 'BANANA'), multiple = TRUE, selectize = FALSE)   
        } else if(input$shopsel == "SUPERMARKETS") {
        selectInput(inputId = "smList", label = "SUPERMARKET", choices = grocer, selected = c('CEREALS', 'PULSES', 'TOILETRIES'), multiple = TRUE, selectize = FALSE)    
        }
    })

    observeEvent(input$a2z, {
        if(input$shopsel == "SHOPS") {
            updateSelectInput(session, inputId = "vegShopList", choices = vegshop[order(vegshop), decreasing = F], selected = NULL)
        } else if(input$shopsel == "SUPERMARKETS") {
            updateSelectInput(session, inputId = "smList", choices = grocer[order(grocer), decreasing = F], selected = NULL)
        }
        })
}

shinyApp(ui = ui, server = server)

如何使用actionButton()按名称排序列表。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-26 07:43:35

你有一个错误:外面闪闪发亮的你写:

代码语言:javascript
复制
vegshop[order(names(vegshop), decreasing = F)]

在闪闪发光的:

代码语言:javascript
复制
vegshop[order(vegshop), decreasing = F]

对于以下闪亮的代码片段,也可能存在相同的情况:

代码语言:javascript
复制
grocer[order(grocer), decreasing = F]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41867479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档