【问题标题】:Shiny App Desktop Deployment Package Issue?Shiny App 桌面部署包问题?
【发布时间】:2016-11-26 04:52:11
【问题描述】:

所以我正在尝试部署一个 Shiny 应用程序,该应用程序是按照我在 R-blogger 网站上使用 Chrome 便携版和 R 便携版找到的说明制作的。我的问题是,在我开始使用 DT 包后,我的应用程序遇到了错误(我猜),因为我的表格输出框不再呈现任何内容,我确实在 R 便携版中安装了“DT”包,所以我不明白这是从哪里来的。 (顺便说一句,我对这个应用程序的部署方式一无所知,我只按照说明进行操作,一旦我不明白这次发生了什么变化,它就起作用了)

这是我的日志,如果它可以帮助你(法语对不起):

Lechargement a necessité le package : 闪亮 Le Chargement a necessité le package : 方法

收听http://127.0.0.1:7777

附加包:'shinydashboard'

以下对象被 'package:graphics' 屏蔽:

box

附加包:'DT'

以下对象被 'package:shiny' 屏蔽:

dataTableOutput, renderDataTable

[1] "C:/Users/p-haffoud/Documents/TestApp/shiny"

好的,这是我的用户界面:

library(shiny)
library(shinydashboard)

shinyUI(dashboardPage(
  dashboardHeader(title="Type Arret"),
  dashboardSidebar(
    sidebarMenu(
      menuItem("Maladie Ordinaire", tabName = "MO", icon = icon("plus-square")),
      menuItem("Longue Maladie", tabName = "LM", icon = icon("clock-o")),
      menuItem("Longue Duree", tabName = "LD", icon = icon("hourglass")),
      menuItem("Total", tabName = "Tot", icon = icon("arrow-right"))
       )
  )
  ,
  dashboardBody(
    tabItems(
      tabItem(tabName = "MO",
        fluidRow(
          img(src='SMACL.jpg',length=75,width=150, align = "right"),
          column(8,
             titlePanel(
               tags$h1("Proportion des jours d'arrets",style="font-family:Impact"))
          )),

        wellPanel(
          fluidRow(column(3,
                          numericInput(inputId = "numMO",
                                       label = "Jour limite",
                                       value = 10, min = 1, max=1000),
                          actionButton(inputId="clicksMO",
                                       label= "Actualiser")))),
        wellPanel(
          fluidRow(
            dataTableOutput("tableMO"))))




     )
   )

))

这是我的服务器文件:

library(DT)

print(getwd())
DFSurvieMO <- read.csv2("data/DFSurvMO.csv",check.names=FALSE)
DFSurvieMO <-DFSurvieMO[,c(2,3,4,6)]

shinyServer(
  function(input, output, session){
    session$onSessionEnded(function() {
      stopApp()
    })

  numerMO <- eventReactive(input$clicksMO , {(which(abs(DFSurvieMO[,1]-input$numMO)==min(abs(DFSurvieMO[,1]-input$numMO)))[1])})

  valeurnumer <- eventReactive(input$clicks, {
    (numer())
  })

  output$tableMO <- DT::renderDataTable({
    datatable(DFSurvieMO,
              options = 
                list( displayStart= numerMO()-2,
                      pageLength = 15,
                      lengthChange = FALSE, searching =FALSE),rownames= FALSE) %>% formatStyle(
      c(1:2),
      backgroundColor = 
        if(numerMO()>1) {
          styleInterval(c(DFSurvieMO[,1][numerMO()-1],DFSurvieMO[,1][numerMO()]), c('blank','lightblue', 'blank'))
        }
        else {
          styleInterval(DFSurvieMO[,1][numerMO()], c('lightblue', 'blank'))}

      )
    })
  })

我所指的数据只是一些带有数值的 csv 表,第一个是以天为单位的时间。其他四个是 3 个整数和 1 个双精度数,尽管我怀疑它会改变什么。

谢谢。

【问题讨论】:

  • 请为您的应用添加一个可重现的小示例。

标签: r deployment package shiny


【解决方案1】:

为了遵循不要重复自己 (DRY) 规则,您可能还需要考虑将 library 调用移动到与 ui.R 和 server.R 位于同一目录中的 global.R 文件。这样,您只需在一处更新它们。

【讨论】:

    【解决方案2】:

    好吧,经过 2 天的研究,答案显然非常简单,我认为问题只是我没有调用 ui 和服务器文件上的库。因此,只需将三个对库(DT、shiny 和 shinydashboard)的调用放在两个文件上,它似乎就可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-25
      • 2013-05-09
      • 1970-01-01
      • 2012-03-17
      • 2018-04-18
      • 1970-01-01
      相关资源
      最近更新 更多