使用闪亮的submitButton重建数据帧

时间:2015-03-27 09:15:41

标签: r shiny

我有一个数据帧,经过一些处理后得到。在该数据帧中,用户需要选择用户想要进行进一步处理的某些标准。为此,有一个添加按钮,当用户点击该按钮时,将根据所选标准取出数据并附加到新数据框。然后,这个新框架继续进行进一步处理。我似乎被困在的是当按下“添加”按钮时,我无法使数据框添加到另一个数据框。我提供了以下代码。任何帮助将不胜感激。

ui.R
library(shiny)


shinyUI(pageWithSidebar(
  headerPanel('Testing'),
  sidebarPanel(
    conditionalPanel(
    condition="input.tabs1=='Observe Data'",
    uiOutput("item"),
    actionButton("add", "Add"))
  ),
  mainPanel(
    tabsetPanel(id ="tabs1",
                tabPanel("Observe Data",verbatimTextOutput("Data_table")),
                tabPanel("Final Table",verbatimTextOutput(outputId='plot'))

    )

  )
))

server.R

library(shiny)
library(dplyr)

chosen_category<-data.frame()
shinyServer(function(input, output) {
  data<-data.frame(Names=c("A","A","A","B","B","B","C","C","A"),Values=c(1,2,3,4,5,654,3,2,2))

  output$item<-renderUI({
    selectInput("category","Categories",as.character(unique(data$Names)))
  })
  filtdata<-reactive({
    p<-data
    p_filt<-data%>%
      filter(Names %in% input$category)
    p_filt
  })

  output$Data_table<-renderPrint({
    filtdata()
  })

  observe({
    input$add
    chosen_category <<- rbind(chosen_category, filtdata())
  })

  final_data <- reactive({
    chosen_category
  })



}) 

1 个答案:

答案 0 :(得分:1)

如果您想在Final Data标签中打印最终数据框,可以在renderPrint而不是observe中为操作按钮添加依赖关系。我删除了observefinal_data表达式并将其添加到您的server.R

output$plot<-renderPrint({
    input$add
    chosen_category <<- rbind(chosen_category, filtdata())
    chosen_category
  })

这会在ui.R的最后一个标签中打印最终数据框。