如何在 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)
})
(未经测试,因为代码不可重现,...)
我有以下代码块:
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)
})
(未经测试,因为代码不可重现,...)