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

Red*_*cef 2 csv variables r 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]))))
            })
Run Code Online (Sandbox Code Playgroud)

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

            Error: attempt to apply non-function.
Run Code Online (Sandbox Code Playgroud)

我尝试使用实际标头(例如 input$testHeader)对此进行测试,效果很好。但是当我尝试对变量执行相同的操作时,例如:

            a < - "testHeader"
            print(input$a).
Run Code Online (Sandbox Code Playgroud)

这将返回 NULL。我假设它正在寻找 ID 为“a”的选择输入,但找不到它。但我不知道还能怎样尝试?

任何帮助都会很棒。

谢谢。

zer*_*323 5

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

print(input[[a]])
Run Code Online (Sandbox Code Playgroud)