获取renderUI输出作为输入 - 闪亮

时间:2015-05-06 11:33:26

标签: r shiny shiny-server

我是新手,可能会问基本问题。

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

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

请找到以下代码

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'))
)

server.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))
)

})

你能说出错误,需要做些什么吗?

1 个答案:

答案 0 :(得分:0)

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

server.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()
)

})

但这非常粗糙。有人可以让我更容易解决吗?