如何使用变量在 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]])
我是 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]])