本地运行的应用程序部署到Shinyapps服务器时遇到错误

时间:2019-07-31 21:05:45

标签: r encoding shiny locale shinyapps

我做了shiny app来分析某种类型的科学数据。简而言之,该程序通过对用户提供的.csv输入进行分析来工作,该输入具有针对已知参考样品的基因表达数据,以识别实验中未知细胞的类型。

我可以在本地运行此闪亮的应用程序,而没有任何问题,但是当我将其托管在ShinyApps服务器上时,绘图刷函数遇到错误,该错误不会导致完全崩溃,但会提示红色错误消息,并且无法输出表格摘要。

我查看了几个SO和RStudio / Shiny线程,并发现由于文件编码的不同而导致出现类似的问题,导致文件在不同平台上损坏。这些主题对我没有帮助。

我尝试过的某些内容可以在thisthisthis链接中找到。

我尝试使用UTF-8编码重新保存server.Rui.R文件以及输入的.csv文件,但没有用。

预期结果是:example

错误看起来像这样:error

有趣的是,我仅在刷图上的某些项目时才观察到此问题。在此处的示例图中,一些X值在刷CD4.CTRL.LNT.4.LN.BDCCD8.CTR.LN时破坏了代码。

x的所有值均来自预分析,并且来自大型数据帧。我看不到与有问题的数据点相关的任何特殊字符。

显示问题的日志对我来说是个秘密:

2019-07-31T20:39:56.688902+00:00 shinyapps[1053041]: Server version: 1.7.6-6
2019-07-31T20:39:56.688904+00:00 shinyapps[1053041]: LANG: en_US.UTF-8
2019-07-31T20:39:56.916208+00:00 shinyapps[1053041]: Using jsonlite for JSON processing
2019-07-31T20:39:56.688945+00:00 shinyapps[1053041]: R version: 3.5.3
2019-07-31T20:39:56.922032+00:00 shinyapps[1053041]: 
2019-07-31T20:39:56.688946+00:00 shinyapps[1053041]: shiny version: 1.3.2
2019-07-31T20:39:56.922034+00:00 shinyapps[1053041]: Starting R with process ID: '23'
2019-07-31T20:39:56.688948+00:00 shinyapps[1053041]: httpuv version: 1.5.1
2019-07-31T20:39:56.688949+00:00 shinyapps[1053041]: rmarkdown version: (none)
2019-07-31T20:39:56.688966+00:00 shinyapps[1053041]: jsonlite version: 1.6
2019-07-31T20:39:56.688985+00:00 shinyapps[1053041]: RJSONIO version: (none)
2019-07-31T20:39:56.689180+00:00 shinyapps[1053041]: Using pandoc at /opt/connect/ext/pandoc2
2019-07-31T20:39:56.689013+00:00 shinyapps[1053041]: htmltools version: 0.3.6
2019-07-31T20:39:56.688965+00:00 shinyapps[1053041]: knitr version: (none)
2019-07-31T20:39:56.950579+00:00 shinyapps[1053041]: 
2019-07-31T20:39:56.950581+00:00 shinyapps[1053041]: Listening on http://127.0.0.1:33950

....

Warning: Error in gsub: input string 1 is invalid in this locale
2019-07-31T20:43:38.699011+00:00 shinyapps[1053041]:   120: gsub
2019-07-31T20:43:38.699022+00:00 shinyapps[1053041]:    93: output$brushtop5
2019-07-31T20:43:38.699014+00:00 shinyapps[1053041]:   119: sanitize
2019-07-31T20:43:38.699051+00:00 shinyapps[1053041]:    13: runApp
2019-07-31T20:43:38.699015+00:00 shinyapps[1053041]:   118: print.xtable
2019-07-31T20:43:38.699053+00:00 shinyapps[1053041]:    12: fn
2019-07-31T20:43:38.699021+00:00 shinyapps[1053041]:    94: origRenderFunc
2019-07-31T20:43:38.699016+00:00 shinyapps[1053041]:   109: transform
2019-07-31T20:43:38.699055+00:00 shinyapps[1053041]:     7: connect$retry
2019-07-31T20:43:38.699017+00:00 shinyapps[1053041]:   108: func
2019-07-31T20:43:38.699056+00:00 shinyapps[1053041]:     6: eval
2019-07-31T20:43:38.699018+00:00 shinyapps[1053041]:   106: f
2019-07-31T20:43:38.699057+00:00 shinyapps[1053041]:     5: eval
2019-07-31T20:43:38.699019+00:00 shinyapps[1053041]:   105: Reduce
2019-07-31T20:43:38.699019+00:00 shinyapps[1053041]:    96: do
2019-07-31T20:43:38.699020+00:00 shinyapps[1053041]:    95: hybrid_chain
2019-07-31T20:43:39.087982+00:00 shinyapps[1053041]:   118: print.xtable
2019-07-31T20:43:39.087989+00:00 shinyapps[1053041]:    94: origRenderFunc
2019-07-31T20:43:39.087990+00:00 shinyapps[1053041]:    93: output$brushtop5
2019-07-31T20:43:39.087991+00:00 shinyapps[1053041]:    13: runApp
2019-07-31T20:43:39.087992+00:00 shinyapps[1053041]:    12: fn
2019-07-31T20:43:39.087984+00:00 shinyapps[1053041]:   108: func
2019-07-31T20:43:39.087994+00:00 shinyapps[1053041]:     7: connect$retry
2019-07-31T20:43:39.087986+00:00 shinyapps[1053041]:   105: Reduce
2019-07-31T20:43:39.088031+00:00 shinyapps[1053041]:     6: eval
2019-07-31T20:43:39.087987+00:00 shinyapps[1053041]:    96: do
2019-07-31T20:43:39.088034+00:00 shinyapps[1053041]:     5: eval


任何想法如何解决此问题?谢谢!

1 个答案:

答案 0 :(得分:1)

我发现了问题所在。原来我在数据框的一列中有一个非ASCII字符(ï)。

我在为这个问题做代表时注意到了这一点。由于这些特殊字符位于应用程序使用的"..." : "json file2.json" 文件之一中,因此我之前没有意识到。保存这些数据帧时,RStudio对其进行了相应编码以显示正确的内容,但是由于需要将其所有组件都进行UTF-8编码,因此此编码在Shiny服务器端引起了问题。

我想如果我确保数据帧尽早没有特殊字符或使用UTF-8编码来覆盖这些字符,那么我就不会遇到这个问题。我会将此问题标记为已回答,但是如果您有其他解决方案,可以随时添加评论。