2017-01-15 1 views
1

Ich möchte auf einem anderen Ausgang die Ergebnisse von 2 Ausgängen in glänzend verwenden zum Plotten: Die erste Ausgabe ist soq1 unter:Wie eine Ausgabe speichern es in einem anderen Ausgang in Shiny R später verwenden

output$soq <- renderTable({ 

    if (input$selectedLevels == "Technical Junior") 
    {soq1<-sum(simplegap1[,input$Candidate]>0)} 

    else if (input$selectedLevels == "Entry Level") 
    {soq1<-sum(simplegap2[,input$Candidate]>0)} 

    else if (input$selectedLevels == "Product Owner") 
    {soq1<-sum(simplegap3[,input$Candidate]>0)} 

    else if (input$selectedLevels == "Technical Leader") 
    {soq1<-sum(simplegap4[,input$Candidate]>0)} 

    else if (input$selectedLevels == "Senior Manager") 
    {soq1<-sum(simplegap5[,input$Candidate]>0)} 
    }, include.rownames = TRUE , bordered = TRUE ,hover = TRUE, align = "c") 

der zweite Ausgang i später verwenden möchten, ist:

output$suq <- renderTable({ 

    if (input$selectedLevels == "Technical Junior") 
    {suq1<-sum(simplegap1[,input$Candidate]<0)} 

    else if (input$selectedLevels == "Entry Level") 
    {suq1<-sum(simplegap2[,input$Candidate]<0)} 

    else if (input$selectedLevels == "Product Owner") 
    {suq1<-sum(simplegap3[,input$Candidate]<0)} 

    else if (input$selectedLevels == "Technical Leader") 
    {suq1<-sum(simplegap4[,input$Candidate]<0)} 

    else if (input$selectedLevels == "Senior Manager") 
    {suq1<-sum(simplegap5[,input$Candidate]<0)} 
    }, include.rownames = TRUE , bordered = TRUE ,hover = TRUE, align = "c") 

und später möchte ich das Ergebnis soq1 und suq1 für Berechnungen auf einen anderen Ausgang verwenden:

output$qsplot <- renderPlot({ 

     if (input$selectedLevels == "Technical Junior") 
     { plot(x,-x,type = "p",main = "Qualification Space",xlim = c(0,1),ylim = c(-1,0), xlab = "SOQ",ylab = "SUQ") 
     points(soq1,suq1,type="o",pch=20) } 

    }) 

Antwort

0

Ich bin nicht sicher, aber ich glaube, Sie entweder suchen: reactive() oder reactiveValues(). Ich denke, die sauberere Version wäre zu verwenden reactive(), aber um ein wenig näher an Ihrem Code-Snippet bleiben, werde ich die letztere verwenden und die Datenmodifikation mit der renderTable() Funktion durchführen.

mat <- matrix(1:9, ncol = 3) 

ui <- fluidPage(
    tableOutput("table1"), 
    tableOutput("table2") 
) 

server <- function(input, output, session){ 
    global <- reactiveValues(mat = NULL) 

    output$table1 <- renderTable({ 
    matNew <- mat 
    # edit the table 
    matNew[, 1] <- 1 
    global$mat <- matNew 
    }) 

    output$table2 <- renderTable({ 
    if(!is.null(global$mat)){ 
     return(global$mat) 
    } 
    }) 
} 

shinyApp(ui = ui, server = server) 

P. S: war ich etwas unsicher, ob ich die Frage richtig zu machen. Falls Sie interessiert sind, hier ist ein guter Beitrag, wie Sie Ihre Fragen einfach beantworten können :). How to make a great R reproducible example?

Verwandte Themen