R Блестящая ошибка с rbind для компиляции результатов из al oop: оценка ошибки вложена слишком глубоко: бесконечная рекурсия - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь скомпилировать результаты, полученные из al oop в фрейме данных, добавляя результаты каждой итерации в фрейм данных, используя rbind (здесь это упрощенный пример). Код работает без проблем в R, но в R блестящий это приводит к бесконечной проблеме рекурсии:

"ошибка: оценка вложена слишком глубоко: бесконечная рекурсия / опции (выражения =)?"

Я попробовал несколько решений и искал на форумах, но не смог найти точно такой же вопрос. Если бы кто-то мог помочь мне, это было бы здорово !!!

Спасибо!

library(shiny)

# Define the ui
ui <- fluidPage(

  # Sidebar with a slider input 
  sidebarLayout(
    sidebarPanel(
       sliderInput("add",
                  "Number to add:",
                  min = 2,
                  max = 20,
                  value = 10)
    ),

    mainPanel(
      tableOutput("view")
    )
  )
)


# Define the server code
server <- function(input, output, session){

  results = reactive({data.frame(i=NA, A=NA)[-1,]})

  for(j in 1:10){

      res_j   =  reactive({data.frame(i=j, A=j+input$add)})
      results =  reactive({rbind(results(), res_j())})
  }

  output$view <-renderTable(results())

}

# Return a Shiny app object
shinyApp(ui = ui, server = server)

1 Ответ

0 голосов
/ 14 января 2020

Может быть, что-то вроде этого:

library(shiny)

# Define the ui
ui <- fluidPage(

  # Sidebar with a slider input 
  sidebarLayout(
    sidebarPanel(
      sliderInput("add",
                  "Number to add:",
                  min = 2,
                  max = 20,
                  value = 10)
    ),

    mainPanel(
      tableOutput("view")
    )
  )
)


# Define the server code
server <- function(input, output, session){

  results = reactiveValues()

  observeEvent(input$add, {
    results$df=data.frame(i=NA, A=NA)[-1,]
    for(j in 1:10){
      res_j   = data.frame(i=j, A=j+input$add)
      results$df =  rbind(results$df, res_j)
    }
  })

  output$view <-renderTable(results$df)

}

# Return a Shiny app object
shinyApp(ui = ui, server = server)
...