2016-03-26 6 views
0

ich die folgende Fehlermeldung erhalten, bevor die Aktionstaste drücken:Fehler vor dem Drücken actionButton?

enter image description here

Alles funktioniert, wie ich nach dem Drücken Run Analysis! Was erwarten fehlt bin ich?

## app.R ## 
library(shiny) 
library(shinydashboard) 
library(dplyr) 
library(arm) 
library(texreg) 

header <- dashboardHeader() 

sidebar <- dashboardSidebar(column(3, actionButton(inputId = "go", label = "Run Analysis!"))) 

body <- dashboardBody(fluidPage(fluidRow(
    box(
    title = "Regression Table", 
    status = "primary", 
    solidHeader = TRUE, 
    width = 6, 
    uiOutput("mybayesglm") 
) 
))) 



ui <- dashboardPage(header, sidebar, body) 

server <- function(input, output) { 
    results <- reactiveValues() 

    observeEvent(input$go, { 
    # Gen fake data 
    N<-1000 
    df1 <- data.frame(v1=sample(c(0,1),N,replace = T), 
         v2=sample(c(0,1),N,replace = T), 
         Treatment=sample(c("A", "B", "C"), N, replace = T), 
         noise=rnorm(N)) %>% 
     mutate(Y=0.5*v1-0.7*v2+2*I(Treatment=="B")+3*I(Treatment=="C")+noise) 
    # Run regression 
    mybayesglm <- bayesglm(data = df1, formula = Y~Treatment+v1+v2) 
    #ouput results in a reactive list 
    results[[as.character(length(names(results)) + 1)]] <- mybayesglm 
    return(results) 
    }) #<-end observeEvent 

    output$mybayesglm <- renderUI({ 
    HTML(
     htmlreg(reactiveValuesToList(results), ci.force = TRUE, ci.force.level = .95, caption = "") 
    ) 
    }) 
    } 

shinyApp(ui, server) 
+0

Ihr Problem klar ist hier "Ergebnisse [[as.character (Länge (Namen (Ergebnisse)) + 1)]] <- mybayesglm". Was versuchst du aus mybayesglm zu extrahieren? – MLavoie

+0

@MLavoie Ich speichere die Ergebnisse, indem ich die Regression zu 'result' führe. Die Idee besteht darin, bei jedem Drücken von run ein weiteres Element zur Liste hinzuzufügen. Dieser Teil funktioniert, versuche zweimal auf run zu drücken und du solltest einen Tisch mit zwei Regressionen bekommen. Vielen Dank! – Ignacio

Antwort

0

Dies funktioniert der Trick:

## app.R ## 
library(shiny) 
library(shinydashboard) 
library(dplyr) 
library(arm) 
library(texreg) 

header <- dashboardHeader() 

sidebar <- dashboardSidebar(column(3, actionButton(inputId = "go", label = "Run Analysis!"))) 

body <- dashboardBody(fluidPage(fluidRow(
    box(
    title = "Regression Table", 
    status = "primary", 
    solidHeader = TRUE, 
    width = 6, 
    uiOutput("mybayesglm") 
) 
))) 



ui <- dashboardPage(header, sidebar, body) 

server <- function(input, output) { 
    results <- reactiveValues() 

    observeEvent(input$go, { 
    # Gen fake data 
    N<-1000 
    df1 <- data.frame(v1=sample(c(0,1),N,replace = T), 
         v2=sample(c(0,1),N,replace = T), 
         Treatment=sample(c("A", "B", "C"), N, replace = T), 
         noise=rnorm(N)) %>% 
     mutate(Y=0.5*v1-0.7*v2+2*I(Treatment=="B")+3*I(Treatment=="C")+noise) 
    # Run regression 
    mybayesglm <- bayesglm(data = df1, formula = Y~Treatment+v1+v2) 
    #ouput results in a reactive list 
    results[[as.character(length(names(results)) + 1)]] <- mybayesglm 
    return(results) 
    }) #<-end observeEvent 

    output$mybayesglm <- renderUI({ 
    if(input$go==0) 
     return() 
    else 
    HTML(
     htmlreg(reactiveValuesToList(results), ci.force = TRUE, ci.force.level = .95, caption = "") 
    ) 
    }) 
} 

shinyApp(ui, server) 
Verwandte Themen