gpt4 book ai didi

r - 在 Shiny 的 R 应用程序中显示欧元符号

转载 作者:行者123 更新时间:2023-12-01 11:34:01 25 4
gpt4 key购买 nike

我正在尝试创建一个 Shiny 的 R 应用程序。我在单选按钮中显示欧元符号(并返回)时遇到了一些麻烦。我尝试了不同版本的代码:

library(shiny)
runApp(list(
ui= navbarPage(title = 'shoe euro',
radioButtons('var', 'var',
c("INCOME_MGL",
"INCOME_MGL€",
"INCOME_MGL€",
"INCOME_MGL€",
"INCOME_MGL\u20ac")
)),
server=function(input, output, session) {
}))

但是“€”没有出现在网页中。此外,如果我选择第二个选项,页面将返回错误:

"Error in fromJSON(content, handler, default.size, depth, allowComments,  : 
invalid JSON input"

最佳答案

问题出在类shiny-options-groupdiv功能。此类的工作方式似乎可以转换 && ,阻止浏览器转换 €进入因为它首先将其更改为 € .尝试将以下内容作为您的 ui.R 以查看它的发生。

library(shiny)
options = as.list(c("a","b",HTML("€"),"€"))
shinyUI(fluidPage("test",fluidRow(div(class = "shiny-options-group", options))))

在您的单选按钮小部件中发生这种情况的原因是 radioButtons电话 generateOptions创建选项列表,和generateOptions返回 div(class = "shiny-options-group", options) , 其中options源自对 choices 的操纵radioButtons 中的参数功能。以下是您可以执行的操作:

  1. 获取 generateOptions 的代码here (第 653 行)。
  2. 定义新函数generateOptions2使用与 generateOptions 完全相同的代码, 但在最后更改类参数。
  3. 获取 radioButtons 的代码通过运行 shiny::radioButtons
  4. 定义一个新函数radioButtons2并在其中替换 generateOptionsgenerateOptions2 .
  5. 将两个新函数的环境设置为 shiny通过运行类似 environment(radioButtons2) <- environment(radioButtons) 的东西
  6. 使用radioButtons2在你的代码中而不是 radioButtons

我唯一不知道的是在 generateOptions2 中将类参数更改为什么.我不太了解div类。

更新

我可能说得太早了。看起来问题要深得多。 div函数调用 tags$div ,它调用 tag第一个参数设置为 "div" . tag然后调用基函数 structure使用参数 class = "shiny.tag" . structure然后调用原始函数 attributes使用参数 class = "shiny.tag" . attributes然后使用此参数转换 &进入&amp; .因此,看起来没有办法使用 div功能并取回欧元符号。我尝试更换 divgenerateOptions2HTML ,但是当我运行应用程序时返回了一堆垃圾。您必须更改 class = "shiny.tag" 的行为,但这可能会产生深远的不可预测的影响。

更新2

想通了!诀窍是使用 gsub替换每个 &amp;只有 &在从 generateOptions2 返回之前.我放了一个你发布的功能版本on github .它需要加载我之前提到的两个函数,它们(在我的存储库中)存储在一个名为 functions.R 的文件中。 . generateOptions2中的重要一行是gsub(pattern = "&amp;", replacement = "&", div(class = "shiny-options-group", options)) .

关于r - 在 Shiny 的 R 应用程序中显示欧元符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29389911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com