示例数据
当创建与Shiny
相关的问题时,所有关于样本数据的指南都适用于答案中提到的“如何创建一个出色的R可重现示例”。总结一下:确保运行代码不需要额外的文件。使用像mtcars
这样的示例数据集,或者使用data.frame()
创建一些示例数据。如果您的数据非常复杂,并且该复杂性确实需要说明问题,您也可以使用dput()
。避免使用像read.csv()
这样的函数,除非您有与fileInput
等函数相关的问题。
示例代码
始终将代码减少到最小,以重现错误或意外行为。这包括删除对其他.CSS
文件和.js
文件的调用,并删除ui
和server
中不必要的函数。
Shiny
应用程序通常由两个或三个文件(ui.R
,server.R
和可能的global.R
)组成,例如此演示应用程序。但是,最好将代码发布为单个脚本,以便其他人可以轻松运行而无需手动创建这些文件。这可以通过以下方式轻松完成:
- 使用
ui <- fluidPage(…)
包装您的UI界面,
- 使用
server <- function(input,output, session) {…}
创建服务器,
- 然后调用
shinyApp(ui, server)
。
因此,一个简单的骨架可以如下所示:
library(shiny)
ui <- fluidPage(
)
server <- function(input,output,session) {
}
shinyApp(ui, server)
工作示例
因此,考虑到上述所有内容,一个良好的Shiny应用程序的最小、完整和可验证示例可能如下所示:
library(shiny)
df <- data.frame(id = letters[1:10], value = seq(1,10))
ui <- fluidPage(
sliderInput('nrow', 'Number of rows', min = 1, max = 10, value = 5),
dataTableOutput('my_table')
)
server <- function(input, output, session) {
output$my_table <- renderDataTable({
df[1:input$nrow,]
})
}
shinyApp(ui, server)
添加CSS
有多种方法可以向Shiny应用程序添加自定义CSS,如这里所述。在可重现的示例中向Shiny应用程序添加CSS的首选方式是将CSS添加到代码中,而不是单独的文件中。这可以通过在应用程序的ui
中添加一行来完成,例如:
tags$head(tags$style(HTML('body {background-color: lightblue;}'))),
r
和pandas的类似问题也在Stack Overflow上而不是在元站上,所以我认为这是正确的做法。 - Florian