闪亮:从名称列表中创建一个reactValues

时间:2018-07-04 10:02:29

标签: r shiny

是否可以生成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非常相似。感谢任何可以帮助我的人。

1 个答案:

答案 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)

不确定是否有清洁剂。