R 将输入存储为数值,以生成三个表

R 将输入存储为数值,以生成三个表,r,shiny,shiny-server,R,Shiny,Shiny Server,我想创建一个大表,以便在一个闪亮的应用程序中在该表之后创建一些表 这是我的服务器的一部分。R: function(input, output) { output$year <- renderText(input$year) ################################ # CONFLICTING PART OF THE CODE year <- reactive({ as.character(input$year)

我想创建一个大表,以便在一个闪亮的应用程序中在该表之后创建一些表

这是我的
服务器的一部分。R

function(input, output) {
    output$year <- renderText(input$year)

    ################################
    # CONFLICTING PART OF THE CODE
    year <- reactive({
      as.character(input$year)
    })

    matrix = tbl_df(dbReadTable(rca_matrices_db, reactive(paste0("table_",year))))
    ################################

    my_table = matrix %>% ... BLA BLA BLA

    output$more_than_10 <- DT::renderDataTable(DT::datatable({
      mytable %>% select(X1,X2) %>% filter(X1 > 10)
    }))

    output$less_than_10 <- DT::renderDataTable(DT::datatable({
      mytable %>% select(X1,X2) %>% filter(X1 < 10)
    }))    
  }
)
如果我在
server.R
的冲突部分替换

year <- 2000
year问题是

    matrix = tbl_df(dbReadTable(rca_matrices_db, reactive(paste0("table_",year))))
它不是反应性的。它不会在反应年份发生变化时更新。此外,正如评论中已经指出的,要调用反应性
年份的值
,需要使用
year()
。因此,您也需要将我的_表设置为反应式,可能如下所示:

my_table <- reactive({ 
    my_matrix = tbl_df(dbReadTable(rca_matrices_db, reactive(paste0("table_",year()))))
    my_table = my_matrix %>% ... BLA BLA BLA
    return (my_table)
})

这将在反应式
mytable()
发生变化时随时更新,正如我们刚才注意到的那样,“input$year”发生了变化。希望这有帮助

您好,请尝试使用
year()
而不是
year
中的
paste0…
您好,谢谢,我尝试过,但问题仍然存在:这很复杂,因为我想添加更多用户可选参数。这可能有助于进行响应式查询,谢谢!!动态创建一个通用表,现在我无法从中创建更小的表,因为错误“无法将类型“closure”强制为类型“character”的向量,这是一个新问题,您可以将其作为堆栈溢出的新问题发布吗?如果没有其他人看过的话,我可以在家里看一看。非常感谢!!我已经做到了。。。现在我将开始回复纯R问题,这就是我所知道的,问题就在这里
my_table <- reactive({ 
    my_matrix = tbl_df(dbReadTable(rca_matrices_db, reactive(paste0("table_",year()))))
    my_table = my_matrix %>% ... BLA BLA BLA
    return (my_table)
})
output$more_than_10 <- DT::renderDataTable(DT::datatable({
  mytable() %>% select(X1,X2) %>% filter(X1 > 10)
}))