ошибка перед нажатием кнопки actionButton?

Перед нажатием кнопки действия я получаю следующую ошибку:

введите здесь описание изображения

Все работает так, как я ожидал после нажатия Run Analysis! Что мне не хватает?

## 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)

person Ignacio    schedule 26.03.2016    source источник
comment
ваша проблема явно здесь results [[as.character (length (names (results)) + 1)]] ‹- mybayesglm. Что вы пытаетесь извлечь из mybayesglm?   -  person MLavoie    schedule 27.03.2016
comment
@MLavoie Я сохраняю результаты выполнения регрессии до results. Идея состоит в том, чтобы добавлять в список еще один элемент каждый раз, когда вы нажимаете кнопку «Выполнить». Эта часть работает, попробуйте дважды нажать run, и вы должны получить таблицу с двумя регрессиями. Спасибо!   -  person Ignacio    schedule 27.03.2016


Ответы (1)


Это помогает:

## 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)
person Ignacio    schedule 28.03.2016