Как вы используете lapply для двух переменных в приложении Shiny? - PullRequest
0 голосов
/ 03 октября 2018

У меня есть следующий фрагмент кода:

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

Я хотел бы переработать его, чтобы учесть тот факт, что inputId отличается от имен столбцов в подмножественных данных.

Вместо приведенного выше кода, применяемого поверх col_names Я пытаюсь применить его таким образом с 2 переменными:

  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)
    })
  }) 

Однако он не работает.

1 Ответ

0 голосов
/ 03 октября 2018

Я думаю, что вы ищете 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)
  }) 

(не проверено, потому что код не воспроизводится, ...)

...