如何在 Shiny 应用程序中对两个变量使用 lapply?

How do you use lapply on two variables in a Shiny app?

我有以下代码块:

  observeEvent(subsettedData(), {
    lapply(col_names, function(var) {
      selections <- unique(subsettedData()[[var]])
      if (length(input[[var]]) == 0)
        updateSelectInput(session = session, inputId = var, choices = selections)
    })
  }) 

我想对其进行修改以纳入 inputId 与子集数据中的列名称不同的事实。

我试图用 2 个变量以这种方式应用它,而不是上面的代码应用 col_names

  observeEvent(subsettedData(), {
    lapply(col_names, col_aliases, function(cn, an) {
      selections <- unique(subsettedData()[[cn]])
      if (length(input[[cn]]) == 0)
        updateSelectInput(session, inputId = an, choices = selections)
    })
  }) 

但是,它不起作用。

我想你在找mapply()

observeEvent(subsettedData(), {
    mapply(FUN = function(cn, an) {
      selections <- unique(subsettedData()[[cn]])
      if (length(input[[cn]]) == 0)
        updateSelectInput(session, inputId = an, choices = selections)
    }, cn = col_names, an = col_aliases)
  }) 

(未经测试,因为代码不可重现,...)