因此,我正在尝试按照我在R-blogger网站上使用Chrome Portable和R portable发现的说明部署一个Shiny应用程序。我的问题是,在我开始使用DT包后,我的应用程序遇到了错误(我猜),因为我的表的输出框不再渲染任何东西,我确实在R便携式中安装了'DT'包,所以我不明白这是来自哪里。 (顺便说一下,我不知道并理解有关此应用程序部署方式的任何内容,我只按照说明进行操作,一旦我不明白这次改变了什么,它就有用了)
这是我的日志,如果它可以帮助你(法国抱歉):
le chargementanécessitélepackage:有光泽 le chargementannécessitélepackage:方法
附加包裹:'shinydashboard'
以下对象从'package:graphics'屏蔽:
box
附加包裹:'DT'
以下对象从'package:shiny'屏蔽:
dataTableOutput, renderDataTable
[1]“C:/ Users / p-haffoud / Documents / TestApp / shiny”
好的,这是我的ui:
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个双倍,即使我怀疑它会改变任何东西。
谢谢。
答案 0 :(得分:2)
好的,显然答案非常简单,经过2天的调查我认为问题只是因为我没有在ui和服务器文件上调用库。因此,只需将三个调用放在两个文件库(DT,shiny和shinydashboard)上,它就可以正常工作。
答案 1 :(得分:1)
为了遵循不要重复自己(DRY)规则,您还可以考虑将library
调用移动到与ui.R和server.R相同的目录中的global.R文件。 。这样你只需要在一个地方更新它们。