以前在这里讨论了如何在ui.R中使用希腊字母。例如,如果想要用户输入参数mu的数值,可以使用:
numericInput("mu",HTML("μ"),value=0)
并显示μ。我想做同样的事情,但使用selectInput中的选择列表。我试过了:
selectInput("param", label = "Parameter",choices=c("α" = "alpha","beta"))
但这只是显示α。我也尝试过:
selectInput("param", label = "Parameter",choices=c(HTML("α") = "alpha","beta"))
和
selectInput("param", label = "Parameter",choices=c("HTML("α")" = "alpha","beta"))
但这会产生错误。
答案 0 :(得分:3)
不要使用HTML希腊字母,而是使用\ uXXXX版本:
selectInput("param", label = "Parameter",choices=c("\u03B1" = "alpha",
"\u03B2" = "beta",
"\u03BC"="mu"))
以下是希腊字母\ uXXXX的表格:http://www.javascripter.net/faq/greekletters.htm
编辑: OP是正确的,由于某些奇怪的原因,这对Chi和许多其他字母不起作用,但是如果你在前面的步骤中为选择创建了命名向量,它的工作原理如下:
choices <- c("alpha","beta","mu","chi")
names(choices) <- c("\u03B1","\u03B2","\u03BC","\u03C7")
selectInput("param","Parameters",choices=choices)
EDIT2: R和unicode的事情仍然很奇怪,但我非常接近你想要的东西。我在R中找不到一个工作的unicode作为下标k,但我为下标i做了,所以如果你愿意使用不同的下标:
library(shiny)
choices <- c("X^2_i")
names(choices) <- c("\u03C7\u1d62\U00B2")
runApp(
list(
ui = fluidPage(
selectInput("param","Parameters",choices=choices)
),
server = function(input, output, session) {
}
)
)
EDIT3: 我仍然认为Unicode是最好的方法,因为在选择选项中包含HTML显然不是一件容易的事:How do I dynamically create an <option> in JavaScript that contains an HTML entity (— ... «)?
我能够在下拉列表中显示HTML,但不能用于所选项目。
library(shiny)
ui <- shinyUI(fluidPage(
mainPanel(
selectizeInput("test","test",choices=c("χ<sup>2</sup><sub>k</sub>"="chi_k^2"),options=list(
labelField="name",
create=FALSE,
render=I(
"{option:function(item,escape) {
return item.name}}"
)
)
)
)
)
)
server <- shinyServer(function(input, output) {
})
shinyApp(ui = ui, server = server)
可能有办法告诉selectizejs在所选框中呈现html,但我没有在任何地方看到它,所以我仍然持怀疑态度。
答案 1 :(得分:2)
看卡尔的答案,并调查selectizejs Readme 有可以设置用于渲染的字段列表。 使用“选项”(所有项目列表中的项目)和“项目”(所选项目),我能够提出以下解决方案,该解决方案将正确呈现所选输入以及下拉列表中的输入:
{
"flavors": [
{
"name": "ti",
"links": [
{
"href": "",
"rel": "self"
},
],
"ram": 8192,
"OS-FLV-DISABLEse,
},
{