是否可以生成reactiveValues
,其中变量名由某个列表list_of_names
给出?例如,这些变量可以存储一个指示相应变量状态的布尔值。
想象一下我有一个列表x
:
x <- lapply(LETTERS, function(i) TRUE)
names(x) <- LETTERS
我可以从reactiveValues
生成rv
的{{1}} x
吗?
我还没去做,我能想到的就是这样:
x
它可以工作,但是我敢肯定必须有一种更简单,更“干净”的方法,因为ui <- fluidPage(
textOutput("boolean")
)
server = function(input, output, session){
nms <- LETTERS[1:10]
### lines that I would change
rv <- reactiveValues(A = TRUE)
for (n in nms) {rv[[n]] <- TRUE}
###
output$boolean <- renderText(rv[["D"]])
}
shinyApp(ui,server)
和x
非常相似。感谢任何可以帮助我的人。
答案 0 :(得分:3)
一种简单的方法是将向量作为reactValues函数的参数调用:
ui <- fluidPage(
textOutput("boolean")
)
server = function(input, output, session){
x <- as.list(rep(T,10))
names(x) <- LETTERS[1:10]
# x as arguments of reactiveValues function
rv <- do.call("reactiveValues",x)
# still works
output$boolean <- renderText(rv[["D"]])
}
shinyApp(ui,server)
不确定是否有清洁剂。