如何在 R 闪亮选择输入下拉列表中呈现不等式



我使用shinydashboard包创建了一个R Shiny应用程序。 我似乎无法使用selectInput函数让不等式或 unicode 字符出现在下拉框中。 谁能帮我弄清楚如何让大于或大于或等于符号 (≥( 出现在下拉列表中? 下面是演示该问题的示例:

library(shiny)
library(shinydashboard)
library(shinyjs)
ui <- shinyUI(dashboardPage(
dashboardHeader(),
dashboardSidebar(collapsed = FALSE,
selectInput("Age", "4. Select Age Group:",
c("u2265 6 months" = "_6plus",
"&ge 6 months" = "_6plus2",
"&#8805; 6months" = "_6plus3",
"&#8805; 6months" = "_6plus3",
"6 months - 4 years" = "_6_4"))),
dashboardBody(
useShinyjs()
)
))
server <- shinyServer(function(input, output, session) {
#addClass(selector = "body", class = "sidebar-collapse")
})
shinyApp(ui = ui, server = server)

但是,这些尝试似乎都没有奏效。 我将不胜感激任何帮助。 谢谢。

您可以使用selectizeInputrender选项在选项名称中使用 HTML 代码:

library(shiny)
render <- "
{
option: function(data, escape){return '<div class="option">'+data.label+'</div>';},
item: function(data, escape){return '<div class="item">'+data.label+'</div>';}
}"

ui <- fluidPage(
selectizeInput(
"age", "Age category", 
choices = c(
"&le; 6 months" = 1,
"6 months - 17 years" = 2,
"&ge; 18 years" = 3
),
options = list(
render = I(render)
)
)
)
server <- function(input, output){}
shinyApp(ui, server)

在为此工作了一段时间后,我找到了一个解决方案,但我仍然会感谢其他人的建议。 我能够做到这一点的唯一方法是将年龄类别放在 UTF-8 文本文件中,例如agegroups.txt,使用readr包读取文件,从读入 tibble 创建一个命名向量,然后使用该向量创建下拉列表。 下面是一个有效的示例:

文本文件:

≥6 months
6 months - 17 years
≥18 years

R 代码:

library(readr)
agegroups <- unique(read_csv("d:\\agegroups.txt"))
agegroupchoices <- setNames(agegroups$AgeGroups, agegroups$AgeGroups)
ui <- shinyUI(dashboardPage(
dashboardHeader(),
dashboardSidebar(
collapsed = FALSE,
selectInput("Age", "4. Select Age Group:", agegroupchoices)
),
dashboardBody(
useShinyjs()
)
))
server <- shinyServer(function(input, output, session) {})
shinyApp(ui = ui, server = server)

最新更新