创建R闪亮的所选商品的购物车

时间:2019-05-10 16:00:41

标签: r shiny

我正在与R Shiny合作。 在应用程序中,我有一个散点图。在散点图上选择点时,将出现一个表(表1),其中包含有关所选点的信息。然后,您可以从表1中进行选择以显示第二个表(表2),其中包含有关表1中的选择的信息。我试图将表2中的选定项添加到另一个表(表3)中,但我希望这些项能够当生成新表2s和表1s时,表3中的数据保留在表3中。本质上,我想将多个项目添加到“购物车”中进行下载。

在R Shiny中是否有这样做的方法? 下面是我的服务器代码片段。

server <- shinyServer(function(input, output, session) {  
######scatter plot
output$landscape_scatter <- renderPlotly({
    p <- plot_ly(data = data, x = ~X, y = ~Y, 
                 color= ~get(input$landscape_color), 
                 type="scatter"
                 )
    p
  })
####### table 1
  output$selected.data.table <- DT::renderDataTable({
    d <- event_data("plotly_selected")
    if (is.null(d))
      return()
    x_min <- round(min(d$x), 5)-0.00001
    x_max <- round(max(d$x),5)+0.00001
    y_min <- round(min(d$y), 5)-0.00001
    y_max <- round(max(d$y), 5)+0.00001

    sel.data <- subset(data, X >= x_min &
                         X <= x_max &
                         Y >= y_min &
                         Y <= y_max)

    sel.data <- sel.data[,c(37,6,33)]
    sel.data$cluster <- as.integer(sel.data$cluster)

    table.data <- DT::datatable(sel.data[,c(4,1,2)], class = 'compact', width = "100%", rownames = FALSE, escape=c(-1), selection = c("single")
    )
    table.data
  })
###### table 2
output$data2 <- DT::renderDataTable({
    d <- event_data("plotly_selected")
    if (is.null(d))
      return()
    x_min <- round(min(d$x), 5)-0.00001
    x_max <- round(max(d$x),5)+0.00001
    y_min <- round(min(d$y), 5)-0.00001
    y_max <- round(max(d$y), 5)+0.00001

    sel.data <- subset(data, X >= x_min &
                         X <= x_max &
                         Y >= y_min &
                         Y <= y_max)

    sel.data <- sel.data[,c(37,6,33)]
    sel.data$cluster <- as.integer(sel.data$cluster)

    data2 <- card[which(card$NUMBER %in% sel.data[input$selected.data.table_rows_selected,2]),c(1,3,11,14)]

    table.data <- DT::datatable(data2)
    )  
    table.data
  })
})
shinyApp(ui = ui, server = server)

我希望在生成新表1s和表2s时从表2中选择的项目保留在表3中,但是当我在散点图中选择新点以生成新表1s时,表3中的所有行/项目都消失了。

0 个答案:

没有答案