以前在这里讨论过如何在ui.R中使用希腊字母.例如,如果想要用户输入参数mu的数值,可以使用:
numericInput("mu",HTML("μ"),value=0)
Run Code Online (Sandbox Code Playgroud)
并显示μ.我想做同样的事情,但使用selectInput中的选择列表.我试过了:
selectInput("param", label = "Parameter",choices=c("α" = "alpha","beta"))
Run Code Online (Sandbox Code Playgroud)
但这只是显示α.我也尝试过:
selectInput("param", label = "Parameter",choices=c(HTML("α") = "alpha","beta"))
Run Code Online (Sandbox Code Playgroud)
和
selectInput("param", label = "Parameter",choices=c("HTML("α")" = "alpha","beta"))
Run Code Online (Sandbox Code Playgroud)
但这会产生错误.
不要使用 HTML 希腊字母,而使用 \\uXXXX 版本,如下所示:
\n\nselectInput("param", label = "Parameter",choices=c("\\u03B1" = "alpha",\n "\\u03B2" = "beta",\n "\\u03BC"="mu"))\nRun Code Online (Sandbox Code Playgroud)\n\n这是希腊字母的 \\uXXXX 表格:http://www.javascripter.net/faq/greekletters.htm
\n\n编辑:\nOP 是正确的,由于某些奇怪的原因,这不适用于 Chi 和许多其他字母,但是如果您在前面的步骤中为选择创建命名向量,它的工作方式如下:
\n\nchoices <- c("alpha","beta","mu","chi")\nnames(choices) <- c("\\u03B1","\\u03B2","\\u03BC","\\u03C7")\nselectInput("param","Parameters",choices=choices)\nRun Code Online (Sandbox Code Playgroud)\n\nedit2:\nR 和 unicode 的情况仍然很奇怪,但我非常接近你想要的。我在 R 中找不到下标 k 的有效 unicode,但我为下标 i 找到了,所以如果您愿意使用不同的下标:
\n\nlibrary(shiny) \nchoices <- c("X^2_i")\nnames(choices) <- c("\\u03C7\\u1d62\\U00B2")\nrunApp(\n list(\n ui = fluidPage(\n selectInput("param","Parameters",choices=choices)\n ),\n server = function(input, output, session) {\n\n }\n )\n)\nRun Code Online (Sandbox Code Playgroud)\n\nedit3:\n我仍然认为 Unicode 是最好的方法,因为在选择选项中包含 HTML 显然并不是微不足道的:How do Idynamic create an <option> in JavaScript that contains an HTMLEntity (\xe2\x80\x94 ... «)?
\n\n我能够在下拉列表中呈现 HTML,但无法呈现所选项目。
\n\nlibrary(shiny)\nui <- shinyUI(fluidPage(\n mainPanel(\n selectizeInput("test","test",choices=c("χ<sup>2</sup><sub>k</sub>"="chi_k^2"),options=list(\n labelField="name",\n create=FALSE,\n render=I(\n "{option:function(item,escape) {\n return item.name}}"\n )\n )\n )\n )\n)\n)\n\nserver <- shinyServer(function(input, output) {\n})\n\nshinyApp(ui = ui, server = server)\nRun Code Online (Sandbox Code Playgroud)\n\n可能有一种方法可以告诉 selectizejs 在所选框中渲染 html,但我还没有在任何地方看到它,所以我仍然持怀疑态度。
\n