我有一个数据帧,经过一些处理后得到。在该数据帧中,用户需要选择用户想要进行进一步处理的某些标准。为此,有一个添加按钮,当用户点击该按钮时,将根据所选标准取出数据并附加到新数据框。然后,这个新框架继续进行进一步处理。我似乎被困在的是当按下“添加”按钮时,我无法使数据框添加到另一个数据框。我提供了以下代码。任何帮助将不胜感激。
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
})
})
答案 0 :(得分:1)
如果您想在Final Data
标签中打印最终数据框,可以在renderPrint
而不是observe
中为操作按钮添加依赖关系。我删除了observe
和final_data
表达式并将其添加到您的server.R
:
output$plot<-renderPrint({
input$add
chosen_category <<- rbind(chosen_category, filtdata())
chosen_category
})
这会在ui.R
的最后一个标签中打印最终数据框。