r - R Shiny 错误与 rbind 编译循环结果:错误评估嵌套太深:无限递归
问题描述
我尝试编译从数据帧中的循环获得的结果,使用 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)
解决方案
也许是这样的:
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)
推荐阅读
- android - 如何修复'尝试在空对象引用上调用虚拟方法'android.support.v4.app.p android.support.v4.app.ka()'
- scapy - 将 BGP 数据包大小更改为小于 19 且大于 4096
- ruby - 如何删除特定索引后的所有元素
- python - 如何在odoo11中的字段上按条件设置必填字段?
- android - Crashlytics 不会在仪表板中出现崩溃
- c++ - 如何通过按键正确地从地图中删除项目?
- php - 如何结合 laravel 和 vue 路由
- java - 如何从 JPA 中的两个表中获取数据
- ionic-framework - 导入 FileTransfer 时的问题 - ionic 3
- python - 具有功能的列表中的Python For循环