У меня есть следующий фрагмент кода:
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, я пытаюсь применить его таким образом с двумя переменными:
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)
})
(непроверено, потому что код не воспроизводится, ...)
Извините за то, что не предоставил воспроизводимый пример, однако я протестировал ваш код, и он действительно сработал.