2016-08-07 23 views
0

Ich benutze glänzend, um ein interaktives Dashboard mit Wertfeldern und einigen Datentabellen zu erstellen. Ich möchte den Wert in der Wertbox durch ausgewählte Zeilen eines Datenrahmens in glänzender Ausgabe aktualisieren. Ich bin jedoch in der Lage, die Zeilennummern ausgewählter Zeilen des Datenrahmens zu lesen, konnte sie jedoch nicht in einer Liste oder einem Vektor speichern.Wie man die Reihennummern der ausgewählten Zeilen eines Dataframes in glanz durch die Funktion beobachten speichert

enter image description here

UI.R

shinyUI(fluidPage(
dashboardPage(
    dashboardHeader(title = "NUS Testing"), 
    dashboardSidebar(), 
    dashboardBody(
    fluidRow(
     valueBoxOutput("norm") 
    ),#ending of first fluid row 
    fluidRow(dataTableOutput("table")) 
    #fluidRow(verbatimTextOutput("x4")) 
    ) 
    )#ending of dashboard page 

)) 



Server.R 
shinyServer(function(input,output,session){ 
    test=read.csv("test.csv",header = T) 

    output$table = DT::renderDataTable(test,server = F) 
    output$norm = renderValueBox({ 
    valueBox(
     paste0(summpg), "Progress", icon = icon("bicycle"), 
     color = "aqua" 
    ) 
    }) #ending of valuebox 
    summpg=sum(test[,2]) 
enter image description here 
    x5 = observeEvent(input$table_rows_selected,{ 
    str(input$table_rows_selected) 
    }) 

    #reading the data from observe event 

}) #ending of shinyserver function 

Antwort

0

Sie versuchen Haben einen reaktiven Ausdruck mit summpg zu schaffen? Folgendes sollte funktionieren:

summpg <- reactive({ 
    sum(test[input$table_rows_selected, 2]) 
}) 

Beachten Sie, dass diese summpg in eine reaktive Funktion macht, so dass Sie es als summpg() (mit Klammern) beziehen müssen an anderer Stelle. reactive ist erforderlich, wenn die Summe bei jeder Änderung der ausgewählten Zeilen aktualisiert werden soll.