如何使用变量在 Shiny 中获取 Input$?

How can I use a variable to get an Input$ in Shiny?

我是 R 的新手,我正在创建一个闪亮的应用程序来读取 csv 和过滤数据。我正在读取 csv 文件,然后使用列名和唯一值循环创建下拉列表:

          output$dropdowns <- renderUI({
            if (is.null(x())) {
              return(NULL)
            }
            lapply(1:ncol(x()), function(i) {
              selectInput(names(x()[i]), names(x()[i]), c("ALL", unique(as.character(x()[,i]))))
            })

我现在正尝试根据用户的输入来过滤数据。为了获取输入,我尝试遍历名称 (names(x)[i]),这是 selectinput 的 ID 并获取值。但是每当我使用 input$names(x)[i] 时,我都会收到以下错误:

            Error: attempt to apply non-function.

我已经尝试使用实际的 header(例如 input$testHeader)对此进行测试,并且效果很好。但是当我尝试对变量做同样的事情时,例如:

            a < - "testHeader"
            print(input$a).

这个 returns 为空。我假设它正在寻找 ID 为 "a" 的 selecinput 但找不到它。但我不知道还能怎么尝试?

任何帮助都会很棒。

谢谢。

input 只是一个 reactivevalues 对象,因此您可以使用 [[

print(input[[a]])