【发布时间】:2019-01-31 05:56:33
【问题描述】:
当我们在数据框中缺少所有列时,通常我们不希望用户选择它们来绘制。有很多方法可以做到这一点,但是否可以让 selectInput 中的项目具有条件颜色。
例如,如何让selectInput 项目列表中所有缺失的列名(如我的示例代码中的var2 列)变为灰色。换句话说,如何重写selectInput,以便我们传入一个指示向量进行条件格式化。
library(shiny)
server <- function(input, session, output) {
DATA = data.frame(var1 = c(2,3,4,1,5), var2 = c(NA,NA,NA,NA,NA))
output$select_1 = renderUI({
variables = names(DATA)
selectInput("select_input","select", choices = variables)
# is.all.na.indicator = sapply(DATA, function(x) all(is.na(x)))
# selectInput("select_input","select", choices = variables, goGrey = is.all.na.indicator)
})
}
ui <- fluidPage(
uiOutput("select_1")
)
shinyApp(ui = ui, server = server)
【问题讨论】:
-
既然您正在动态生成 UI,为什么不考虑 NA 选择要在
selectInput中显示的列?我的意思是删除选择输入列表中已经包含所有 NA 的所有列。 -
AFAIK,
selectInput的选项在任何情况下都不能灰显。 -
我知道删除所有 NA 的列很容易,但我只是想知道用户是否可以看到更多。