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

时间:2015-06-23 16:17:18

标签: r variables csv 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.

我尝试使用实际的标头(例如输入$ testHeader)来测试它,这样可以正常工作。但是当我尝试对变量做同样的事情时,例如:

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

返回NULL。我假设它正在寻找ID为“a”的selecinput而无法找到它。但是我没有想法怎么试试呢?

任何帮助都会很棒。

感谢。

1 个答案:

答案 0 :(得分:2)

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

print(input[[a]])