【发布时间】:2020-04-21 19:56:07
【问题描述】:
我有一个想要部署 shinyapps.io 的应用程序,并且正在使用标准过程(描述为 here)来尝试部署它。不幸的是,我不断收到此错误消息。
经过几个小时的调试,我很确定会发生这种情况,因为我尝试读取包含非 ASCII 字符(德语变音符号,例如 Ä)的 .csv 文件。我已经尝试了here 描述的选项(即将所有相关脚本和 .csv 文件保存为 UTF-8 文件,以及在部署应用程序之前将编码选项显式设置为 UTF-8)。
除了简单地更改 CSV 文件中的字符(我真的很想避免)之外,我还能尝试什么?
非常感谢您的帮助!
这里尝试了一个最小的可重现示例。
应用代码在这里:
library(shiny)
library(formattable)
library(readxl)
fp = read.csv("./with1.csv",stringsAsFactors = FALSE,strip.white = TRUE)
ui <- fluidPage(
mainPanel(
formattableOutput("t1"),
tags$style("#t1 {color:steelblue;}"),
tableOutput("t2")
)
)
server <- function(input, output, session) {
output$t2 = renderTable({
fp
})
output$t1 = renderFormattable({
test = as.data.frame(matrix(ncol=4,nrow=1))
colnames(test) = c("Price","Avy Risk","Tomorrow / This Week","Drive Time")
test[1,]=c(paste("\U20AC","29"),"2","26cm/ 85cm","3h45m")
formattable(test,
align = c("c","c","c","c"),
list(`Price` = formatter("span", style = ~ style(font.weight = "bold",color="#4187FF",
border = "1px solid #4187FF",border.radius="4px",
padding="3px")),
`Avy Risk` = formatter("span", style = ~ style(font.weight = "bold",color="#FF705A",
border = "1px solid #FF705A",border.radius="4px",
padding="3px")),
`Tomorrow / This Week` = formatter("span", style = ~ style(font.weight = "bold",color="#5cb85c",
border = "1px solid #5cb85c",border.radius="4px",
padding="3px")),
`Drive Time` = formatter("span", style = ~ style(font.weight = "bold",color="#C13BFF",
border = "1px solid #C13BFF",border.radius="4px",
padding="3px"))
)
)
})
}
shinyApp(ui, server)
fp 数据集(保存在 excel.csv 文件中)如下所示:
[![enter image description here][4]][4]
将 RStudio 正确连接到 RSConnect 后,我的部署语句如下所示:
options(encoding = "UTF-8")
rsconnect::deployApp('C:/Users/fiscs14/Desktop/PowderHound/test')
我希望这个示例在某种程度上可以很容易地重现,并让您了解我遇到的问题。
【问题讨论】:
-
请参阅this 关于如何分享闪亮示例的问题。
-
我认为该线程充分解决了如何共享普通 Shiny 应用程序的问题。然而不幸的是,我的问题是部署到 shinyapps.io 服务器,这需要一个秘密令牌,共享是不明智的。我将尝试重新创建一个示例,但它需要回答者拥有一个 shinyapps.io 帐户并使用该帐户重新创建它。
-
啊,好吧,所以你不能重现基本闪亮的行为。
-
没错,它需要一个shinyapps.io 帐户并且不能仅在基本闪亮中完成。
标签: r deployment utf-8 shiny ascii