2016-07-22 2 views
1

그래서 Chrome Portable과 R portable를 사용하여 R-blogger 웹 사이트에서 찾은 지침에 따라 Shiny 앱을 배포하려고합니다. 내 문제는 DT 패키지를 사용하기 시작한 후 테이블의 출력 상자가 더 이상 렌더링되지 않아서 앱에 오류가 발생했다는 것입니다. R 휴대용에 'DT'패키지를 설치했기 때문에 이해가 안됩니다. 이것이 어디에서 왔는지. (그런데이 앱의 배포 방법에 대해 알지 못하고 이해합니다. 지침을 따랐을 뿐이며 이번에 변경된 내용을 이해하지 못하면 작동합니다.)반짝이는 앱 데스크탑 배포 패키지 문제가 있습니까?

당신 (프랑스어 미안) :

르 chargement nécessité 르 패키지 : 반짝 르 chargement nécessité 르 패키지 : 방법

패키지를 부착 http://127.0.0.1:7777

에 듣기 'shinydashboard'

'그래픽 패키지'

box 

부착 패키지 :

다음 객체에서 마스크 'DT'

다음 개체는 '패키지 : 빛나는'에서 마스킹

dataTableOutput, renderDataTable 

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

Ok 여기 내 ID는

입니다.

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 테이블입니다 참조 데이터, 첫 번째 일의 시간은 다음과 같습니다 6,

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")))) 




    ) 
    ) 

)) 

그리고 여기 내 서버 파일입니다. 4 개의 다른 것은 3 개의 정수이고 1은 두 배가됩니다.

감사합니다.

+0

작은 재현 가능한 예를 추가하십시오. – Jimbou

답변

2

좋아요. 그럼 분명히 대답은 2 일 후 매우 간단했습니다. 문제는 단순히 ui와 서버 파일 모두에서 라이브러리를 호출하지 않았다는 것입니다. 그래서 두 파일에 3 개의 호출 (DT, 반짝이는 shinydashboard)을 사용하면 작동하는 것 같습니다.

1

Do not Repeat Yourself (DRY) 규칙을 따르려면 library 호출을 ui.R 및 server.R과 같은 디렉토리에있는 global.R 파일로 이동하는 것이 좋습니다. 그렇게하면 한 곳에서 업데이트 만하면됩니다.

관련 문제