【问题标题】:Locally functioning app encounters an error when deployed to Shinyapps server本地运行的应用程序在部署到 Shinyapps 服务器时遇到错误
【发布时间】:2019-12-09 10:47:16
【问题描述】:

我创建了一个shiny app 用于分析某种类型的科学数据。简而言之,该程序的工作原理是分析用户提供的.csv 输入,该输入具有针对已知参考样本的基因表达数据,以识别实验中未知细胞的类型。

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

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

我尝试的一些东西可以在thisthisthis 链接中找到。

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

预期结果是:

错误如下所示:

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

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


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

【问题讨论】:

  • 您能否将您的 server/ui 代码缩减为一个最小的完整可验证示例,并包含一个包含一个正常行和一个异常行的小型 CSV?
  • 我花了一些时间来做一个reprex,当我准备把它添加到我的帖子中时,我发现了导致问题的原因。原来我在其中一个数据列(“ï”)中有一个非英文字符。我将在下面的新帖子中再用几句话进行解释。感谢您对问题的兴趣!

标签: r encoding shiny locale shinyapps


【解决方案1】:

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

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

如果我在早期确保数据帧没有特殊字符或使用会覆盖这些字符的 UTF-8 编码,我想我不会遇到这个问题。我会将这个问题标记为已回答,但如果您有其他解决方案,请随时添加 cmets。

【讨论】:

    猜你喜欢
    • 2017-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    • 2014-07-08
    • 2012-02-02
    • 1970-01-01
    • 2020-07-04
    相关资源
    最近更新 更多