2017-10-16 6 views
0

DataFehler: Objekt ‚Ausgang‘ nicht gefunden

immer Fehler:

output object not found 

weiß nicht, warum dies geschieht, ich habe das gleiche Material auf Vergangenheit Armaturenbrett getan, dass die Zeit kein Fehler aufgetreten ist. Ausgangsobjekt angegeben ist, aber immer noch kann es nicht

Server.R

d <-read_excel("data/ds.xlsx",sheet = 1) 
output$plot1 <- renderPlotly({ 
data <- switch(input$var, 
      "Beginning Stocks (1000 MT)"= d$`Beginning Stocks (1000 MT)` 
      ,"Area Harvested (1000 HA)" = d$`Area Harvested (1000 HA)` 
      ,"Yield (MT/HA)" = d$`Yield (MT/HA)` 
      ,"Production (1000 MT)" = d$`Production (1000 MT)` 
      ,"MY Imports (1000 MT)" =d$`MY Imports (1000 MT)` 

     ) 
    data1 <- switch(input$var1, 
       "Beginning Stocks (1000 MT)"= d$`Beginning Stocks (1000 
       MT)` 
       ,"Area Harvested (1000 HA)" = d$`Area Harvested (1000 HA)` 
       ,"Yield (MT/HA)" = d$`Yield (MT/HA)` 
       ,"Production (1000 MT)" = d$`Production (1000 MT)` 
       ,"MY Imports (1000 MT)" =d$`MY Imports (1000 MT)` 
         ) 
     plot_ly(d, x =~d$`Attributes (Unit)`, y = ~data,type= "scatter",mode = 
     'markers+lines', marker = list(size = 10),name=input$var) %>% 
     add_trace(x = ~d$`Attributes (Unit)`, y = ~data1,type="scatter" 
     ,mode="markers+lines",name=input$var1) 
     }) 

UI.R

navbarPage("Barley Dashboard", 
     tabPanel("Balance sheet", 
       fluidPage(theme = shinytheme("united"), 
      mainPanel(fluidRow(column(8,selectInput("var",selected="select", 
      label = "Choose first variable",           
     choices = c("Beginning Stocks (1000 MT)","Area Harvested (1000 
     HA)","Yield (MT/HA)","Production (1000 MT)","MY Imports (1000 
     MT)") 
          ) 
          ), 
     column(8,selectInput("var1", selected = "select", 
     label = "Choose second variable",choices = c("Beginning Stocks 
     (1000 MT)", "Area Harvested (1000 HA)","Yield (MT/HA)","Production 
      (1000 MT)","MY Imports (1000 MT)") 
          ) 
          ) 
          ), 
      plotlyOutput("plot1") 
     )))) 

immer Fehler erkennen: Error in output$plot1 <- renderPlotly({ : object 'output' not found

Ich bin nicht kann den Fehler beheben

+1

Haben Sie 'server <- Funktion (Eingabe, Ausgabe, Sitzung) {' – akrun

+0

@akrun nein Ich habe separate Registerkarten für ui und Server erstellt, also nicht enthalten –

+0

Also, wie kann ich dieses Problem beheben? –

Antwort

0

Ich habe Ihr Beispiel in einer einzigen Datei app.R in einem Ordner mit dem Namen „app“ wiedergegeben. Vergessen Sie nicht, die relevanten Pakete mit library zu laden! Auch nicht brechen Linien in selectInput Entscheidungen, da dies für die Spaltennamen verwendet werden.

Die Dinge, die Sie mit den switch()'s tun, können direkt durch Shiny behandelt werden, indem die Namen der Eingabespalte von d in plot_ly() abgerufen werden.

Schließlich, vergessen Sie nicht Ihre Daten-Set (d) in Ihrem Skript zu importieren.

library(shinythemes) 
library(plotly) 

ui <- navbarPage("Barley Dashboard", 
      tabPanel("Balance sheet", 
        fluidPage(theme = shinytheme("united"), 
           mainPanel(fluidRow( 
           column(8, 
             selectInput("var", 
                selected="select", 
                label = "Choose first variable",      
                choices = c("Beginning Stocks (1000 MT)", 
                   "Area Harvested (1000 HA)","Yield (MT/HA)", 
                   "Production (1000 MT)","MY Imports (1000 MT)")) 
          ), 
           column(8,selectInput("var1", selected = "select", 
                label = "Choose second variable", 
                choices = c("Beginning Stocks (1000 MT)", 
                   "Area Harvested (1000 HA)","Yield (MT/HA)", 
                   "Production (1000 MT)","MY Imports (1000 MT)"))) 
          ), 
           plotlyOutput("plot1") 
          )) 
        )) 

library("openxlsx") 
d <- read.xlsx("ds.xlsx", check.names = F) 
# Handle the changes of the colnames with dots instead of spaces due to read.xlsx() 
names(d) <- gsub(x = names(d), pattern = "\\.", replacement = " ") 

'server' <- function(input, output, session) { 

    output$plot1 <- renderPlotly({ 
    #browser() 
    plot_ly(d, x =~d$`Attributes (Unit)`, y = ~d[,input$var], 
      type= "scatter",mode = 'markers+lines', 
      marker = list(size = 10),name=input$var) %>% 
    add_trace(x = ~d$`Attributes (Unit)`, y = ~d[,input$var1],type="scatter", 
       mode="markers+lines", name=input$var1,yaxis="y2") 
}) 
} 

shinyApp(ui=ui, server = server) 

enter image description here

Obwohl ich glaube nicht, dass dies die Ausgabe, die Sie von add_trace() in Ihrem plot_ly Code erwarten ist.

+0

können Sie mir helfen, die Spur in hinzuzufügen plotly @ Antoine Pissoort –

Verwandte Themen