【问题标题】:getting renderUI output as input - shiny将 renderUI 输出作为输入 - 闪亮
【发布时间】:2026-01-18 05:50:02
【问题描述】:

我是闪亮的新手,可能会问一些基本问题。

到目前为止,我在本地机器上有一个数据集,其中包含商店编号和它销售的商品以及其他数据。

我希望有一个应用程序可以选择一个商店编号,列出该商店中的所有商品,然后根据选择的商品显示该商店和商品的所有数据。

请在下面找到代码

ui.R

library(shiny)

df<-read.csv("C:/Users/adey1/Office Projects/NGSC_Shiny/Ensembler App/Trial Started on 05-06-2015//example1.csv")

category<-unique(df$item_nbr)

store<-unique(df$store_nbr)

sidebarPanel(
selectInput(inputId = "Store",
          label = "Store",
          store),

uiOutput("items"),

mainPanel(textOutput('values'))
)

服务器.R

shinyServer(function(input, output) {
output$items<-renderUI({

item_list<-unique(df$item_nbr[which(df$store_nbr==input$Store)])

radioButtons("item1", "Select Item", item_list)
})

output$value<-renderTable(
subset(df,store_nbr==input$store & item_nbr==as.integer(input$item1))
)

})

你能建议什么是错的,需要做什么吗?

【问题讨论】:

    标签: r shiny shiny-server


    【解决方案1】:

    我发现这些更改在服务器端有效:-

    服务器.R

    shinyServer(function(input, output) {
    output$items<-renderUI({
    
    item_list<-unique(df$item_nbr[which(df$store_nbr==input$Store)])
    
    radioButtons("item1", "Select Item", item_list)
    })
    
    dataset=reactive({
    
    y=which(df$store_nbr==input$Store & df$item_nbr==input$item1)
    df1=as.data.frame(cbind(df$date[y],df$item_nbr[y],df$units[y],df$store_nbr[y]))
    names(df1)=names(df)
    df1
    
    })
    
    output$value<-renderTable(
    
    dataset()
    )
    
    })
    

    但这很粗糙。有人能给我更简单的解决方案吗?

    【讨论】:

      最近更新 更多