有关如何在Stack Overflow和how to make a great R reproducible example上创建Minimal, Complete, and Verifiable example的资源 . 但是,对于_1239687问题没有类似的指导原则,而遵守某些标准使得更有可能给出质量答案,从而解决您的问题 .
但是,提出一个好的闪亮问题可能很困难 . shiny应用程序通常庞大而复杂,使用多个数据源,并且代码通常分为多个文件,因此很难与其他人共享易于重现的代码 . 即使在 server.R
中可能导致问题,但如果没有 ui.R
(以及可能的其他文件,如样式表或 global.R
),则该示例不可重现 . 单独复制粘贴所有这些文件的内容是麻烦的,并且需要其他用户重新创建相同的文件结构以能够重现该问题 .
所以;如何将您的shiny应用程序转换为一个良好的可重现的示例?
1 回答
Example data
当然,在创建与
Shiny
相关的问题时,关于问题_1239694的答案中提到的关于样本数据的所有指南也都适用 . 总结:确保运行代码不需要其他文件 . 使用mtcars
等样本数据集,或使用data.frame()
创建一些样本数据 . 如果您的数据非常复杂并且确实需要复杂性来说明问题,那么您也可以使用dput()
. 避免使用像_1239699这样的函数,除非您有与fileInput
等函数相关的问题 .Example code
始终将代码减少到最低限度,以重现您的错误或意外行为 . 这包括删除对其他
.CSS
文件和.js
文件的调用,并删除ui
和server
中不必要的函数 .闪亮的应用程序通常包含两个或三个文件(
ui.R
,server.R
和可能global.R
),例如this demo application . 但是,最好将您的代码作为单个脚本发布,因此可以轻松地由其他人运行,而无需手动创建这些文件 . 这可以通过以下方式轻松完成:用
ui <- fluidPage(…)
包装你的ui,服务器
server <- function(input,output, session) {…}
,并随后调用
shinyApp(ui, server)
.所以一个简单的骨架可以看起来如下:
Working Example
因此,考虑到上述所有因素,Shiny应用程序的一个良好的Minimal,Complete和Verifiable示例可能如下所示:
Adding CSS
有多种方法可以将自定义CSS添加到Shiny应用程序中,如here所述 . 在可重现的示例中将CSS添加到Shiny应用程序的首选方法是在代码中添加CSS,而不是在单独的文件中 . 这可以通过在应用程序的
ui
中添加一行来完成,例如,如下所示: