我有以下代码段:
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)
})
})
但是,它不起作用。
答案 0 :(得分:1)
我认为您正在寻找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)
})
(未经测试,因为代码不可复制,...)