如何只在Shiny中加载一次文件?

时间:2017-05-15 08:11:44

标签: r shiny

我只是想知道如何在server.R中只运行一次read.csv?在下面的代码中,每次我更改ui.R中的输入时,代码运行read.csv需要几秒钟,因此我期待在开始时只加载一次文件然后使用相同的文件在ui.R中输入的数据发生变化。谢谢 这是我的代码:

ui.R

shinyUI(fluidPage(
     headerPanel("myApp"),
     fluidRow(   sidebarPanel(
    selectInput("myOptions", "myOptions:",
                list("1" = "1", 
                     "2" = "2",
                     "3" = "3"))
     )),
     hr(),
     plotlyOutput("prescription"),   
     hr()   
      ))

server.R

library(utils)
library(plotly)
library(plyr)


shinyServer(function(input, output) {


  diseases<-eventReactive({
    diseases=read.csv("diseases_94.csv",header=F)
 })


  output$prescription <- renderPlotly( {

   myDiseases=diseases
   freq=count(myDiseases,"DISEASES")

   p<-plot_ly(freq, labels = ~DISEASES, values = ~freq, type = 'pie',
        textposition = 'inside',
        textinfo = 'label+percent',
        insidetextfont = list(color = '#FFFFFF'),
        hoverinfo = 'text',
        text = ~paste(DISEASES),
        marker = list(line = list(color = '#FFFFFF', width = 1)))



 p


 })


 })

1 个答案:

答案 0 :(得分:0)

使用shinyServer之外的变量。这应该只在开头加载文件。