Use entrada de texto brilhante e dplyr para filtrar linhas em um quadro de dados
Estou tentando usar o widget de entrada de texto em um aplicativo brilhante para filtrar linhas em um quadro de dados, mas não consigo fazê-lo funcionar.
Conjunto de dados
df1<-data.frame (Name=c("Carlos","Pete","Carlos","Carlos","Carlos","Pete","Pete","Pete","Pete","Homer"),Sales=(as.integer(c("3","4","7","6","4","9","1","2","1","9"))))
UI
shinyUI(fluidPage(
titlePanel("Sales trends"),titlePanel("People score"),
sidebarLayout(sidebarPanel(
textInput("text", label = h3("Text input"), value = "Enter text..."),
numericInput("obs", "Number of observations to view:", 3),
helpText("Note: while the data view will show only the specified",
"number of observations, the summary will still be based",
"on the full dataset."),
submitButton("Update View")
),
mainPanel(
h4("Volume: Total sales"),
verbatimTextOutput("volume"),
h4("Top people"),
tableOutput("view")
))))
Servidor
library(shiny)
library (dplyr)
df1<-data.frame (Name=c("Carlos","Pete","Carlos","Carlos","Carlos","Pete","Pete","Pete","Pete","Homer"),Sales=(as.integer(c("3","4","7","6","4","9","1","2","1","9"))))
shinyServer(function(input, output) {
output$value <- renderPrint({ input$text })
datasetInput <- reactive({
switch(input$dataset,df1%>% filter(Name %in% "input$text")%>% select(Name, Sales)%>% arrange(desc(Sales)))
})
output$volume <- renderPrint({
dataset <- datasetInput()
sum(dataset$Sales)
})})