简体   繁体   中英

R- Problem to deploy shiny app with a file stored on a server

I'm actually new using Shiny and I need your help to solve a problem.

I wrote a code that works locally. However when I try to deploy the app using shiny app it does not work. I read a ot of things and I partially understood why. I need the file to be stored in a server because many people can modidy it.

Now, one solution could be to download the file before loading the UI and Server but I don't know how to do it. Here the code that I wrote. If anyone could help me, it will be very nice!

library(shiny)
library(shinydashboard)
library("psych")#ICC
library("WriteXLS")
library("psych")#ICC
library("WriteXLS")
library(sp)
library(spatstat)
library(raster)
library(fields)
library(akima)
library("tcltk2")
library("gdata")
library("plot3D")
library("png")
library(tidyverse)

#lecture du fichier
raw<-read.xls(file,sheet="Equipe", header = TRUE,skip=0)
attach(raw)#permet de travailler sur le fichier "raw"
raw1<-read.xls(file,sheet="Reca", header = TRUE,skip=0)
raw1<-subset(raw1,raw1[,12]=="R0"|raw1[,12]=="R1"|raw1[,12]=="R2"|raw1[,12]=="R3"|raw1[,12]=="RA")

x<-left_join(raw,raw1)

#   Creation de l'UI    
ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(
    sidebarMenu(
      menuItem("Selection",icon=icon("dashboard")),
      selectInput(inputId = "results", label = "De quelle équipe voulez-vous regarder les joueurs ?",
                  choices=levels(raw[,2])),
      uiOutput("textORdate")
    )), 
  dashboardBody(
    fluidRow(
      infoBoxOutput("Pilier"),tags$style("#Pilier{width:245px;}"),
      infoBoxOutput("Talonneur"),tags$style("#Talonneur{width:245px;}"),
      infoBoxOutput("SecondeL"),tags$style("#SecondeL{width:245px;}"),
      infoBoxOutput("TroisiemeL"),tags$style("#TroisiemeL{width:245px;}")
    ),

    fluidRow(
      infoBoxOutput("Centre"),tags$style("#Centre{width:245px;}"),
      infoBoxOutput("Ouverture"),tags$style("#Ouverture{width:245px;}"),
      infoBoxOutput("Melee"),tags$style("#Melee{width:245px;}"),
      infoBoxOutput("Ailier"),tags$style("#Ailier{width:245px;}")
    ),

    fluidRow(
      column(width=4,
             box(title="Pilier",height="530",width="16",solidHeader = T,status="primary",
                 tableOutput("mat_Pilier"))),
      column(width=4,
             box(title="Talonneur",height="530",width="16",solidHeader = T,status="primary",
                 tableOutput("mat_Talonneur"))),
      column(width=4,
             box(title="Seconde Ligne",height="530",width="16",solidHeader = T,status="primary",
                 tableOutput("mat_2L"))
      ),
      column(width=4,
             box(title="Troisieme Ligne",height="530",width="16",solidHeader = T,status="primary",
                 tableOutput("mat_3L"))
      ),
      column(width=4,
             box(title="Centres",height="530",width="16",solidHeader = T,status="primary",
                 tableOutput("mat_Centre"))
      ),
      column(width=4,
             box(title="Ailier - Arriere",height="530",width="16",solidHeader = T,status="primary",
                 tableOutput("mat_Ailier"))
      ),
      column(width=4,
             box(title="1/2 Melee",height="530",width="16",solidHeader = T,status="primary",
                 tableOutput("mat_Melee"))
      ),
      column(width=4,
             box(title="1/2 Ouverture",height="530",width="16",solidHeader = T,status="primary",
                 tableOutput("mat_Ouverture"))
      )
    )
  )) 

#   Define the server logic    #
server <- function(input, output) {

  #     Creation de la matrice pour enregistrer le statut du joueur     #
  observeEvent(input$results,{
    #Pour les piliers    
    x_Pilier<-x[,1][x[,2]==input$results&x[,3]=="Pilier"]
    z_Pilier<-(x_Pilier%in%(x[,1][x[,1]%in%(x[,1][x[,2]==input$results&x[,3]=="Pilier"])])#permet de savoir les joueurs qui sont dans equipe et liste de blessé
               &(x[,12][x[,2]==input$results&x[,3]=="Pilier"]=="R0"#joueurs blessés dont le stade blesse = R0
                 |x[,12][x[,2]==input$results&x[,3]=="Pilier"]=="R1"# | = ET joueurs blessés dont le stade = R1
                 |x[,12][x[,2]==input$results&x[,3]=="Pilier"]=="R2"))# | = ET joueurs blessés dont le stade = R2
    w_Pilier<-(x_Pilier%in%(x[,1][x[,1]%in%(x[,1][x[,2]==input$results&x[,3]=="Pilier"])])#permet de savoir les joueurs qui sont dans equipe et liste de blessé
               &(x[,12][x[,2]==input$results&x[,3]=="Pilier"]=="RA"#joueurs blessés dont le stade blesse = R0
                 |x[,12][x[,2]==input$results&x[,3]=="Pilier"]=="R3"))# | = ET joueurs blessés dont le stade = R2
    #Matrice pour contenir les résultats de la selection (joueur + etat de sante)
    mat_joueur_Pilier<-as.data.frame(matrix(ncol=4,nrow=length(x_Pilier)))
    #Si les joueurs ne sont pas dans la selection alors ils sont prets à joueur
    mat_joueur_Pilier[,1]<-as.data.frame(x_Pilier)
    mat_joueur_Pilier[,2]<-as.data.frame(z_Pilier)
    mat_joueur_Pilier[,3]<-as.data.frame(w_Pilier)
    mat_joueur_Pilier[is.na(mat_joueur_Pilier)] <- FALSE

    for (i in 1:length(x_Pilier)){
      if(mat_joueur_Pilier[i,2]=="FALSE"&mat_joueur_Pilier[i,3]=="FALSE"){
        mat_joueur_Pilier[i,4]<-"Joueur disponible"
      }
      else if (mat_joueur_Pilier[i,2]=="TRUE"&mat_joueur_Pilier[i,3]=="FALSE") {
        mat_joueur_Pilier[i,4]<-"ATTENTION RTP"
      }
      else{
        mat_joueur_Pilier[i,4]<-"LIMITE"
      }
    }

    output$mat_Pilier<-
      renderTable(
        mat_joueur_Pilier[,c(1,4)],colnames=FALSE
      )

    output$Pilier<-renderInfoBox({
      infoBox(
        "Pilier", paste0(length(mat_joueur_Pilier[,1][mat_joueur_Pilier[,4]=="Joueur disponible"])," joueurs OK"), 
        HTML(paste0(length(mat_joueur_Pilier[,1][mat_joueur_Pilier[,4]=="LIMITE"])," joueurs limités"),"\n",
             paste0(length(mat_joueur_Pilier[,1][mat_joueur_Pilier[,4]=="ATTENTION RTP"])," joueurs blessés")),
        icon = icon("thumbs-down"),
        color = "red"
      )})


    #POur les 1/2 d'ouverture
    x_Ouverture<-x[,1][x[,2]==input$results&x[,3]=="1/2 Ouverture"]
    z_Ouverture<-(x_Ouverture%in%(x[,1][x[,1]%in%(x[,1][x[,2]==input$results&x[,3]=="1/2 Ouverture"])])#permet de savoir les joueurs qui sont dans equipe et liste de blessé
                  &(x[,12][x[,2]==input$results&x[,3]=="1/2 Ouverture"]=="R0"#joueurs blessés dont le stade blesse = R0
                    |x[,12][x[,2]==input$results&x[,3]=="1/2 Ouverture"]=="R1"# | = ET joueurs blessés dont le stade = R1
                    |x[,12][x[,2]==input$results&x[,3]=="1/2 Ouverture"]=="R2"))# | = ET joueurs blessés dont le stade = R2
    w_Ouverture<-(x_Ouverture%in%(x[,1][x[,1]%in%(x[,1][x[,2]==input$results&x[,3]=="1/2 Ouverture"])])#permet de savoir les joueurs qui sont dans equipe et liste de blessé
                  &(x[,12][x[,2]==input$results&x[,3]=="1/2 Ouverture"]=="RA"#joueurs blessés dont le stade blesse = R0
                    |x[,12][x[,2]==input$results&x[,3]=="1/2 Ouverture"]=="R3"))# | = ET joueurs blessés dont le stade = R2
    #Matrice pour contenir les résultats de la selection (joueur + etat de sante)
    mat_joueur_Ouverture<-as.data.frame(matrix(ncol=4,nrow=length(x_Ouverture)))
    #Si les joueurs ne sont pas dans la selection alors ils sont prets à joueur
    mat_joueur_Ouverture[,1]<-as.data.frame(x_Ouverture)
    mat_joueur_Ouverture[,2]<-as.data.frame(z_Ouverture)
    mat_joueur_Ouverture[,3]<-as.data.frame(w_Ouverture)
    mat_joueur_Ouverture[is.na(mat_joueur_Ouverture)] <- FALSE

    for (i in 1:length(x_Ouverture)){
    if(mat_joueur_Ouverture[i,2]=="FALSE"&mat_joueur_Ouverture[i,3]=="FALSE"){
        mat_joueur_Ouverture[i,4]<-"Joueur disponible"
      }
      else if (mat_joueur_Ouverture[i,2]=="TRUE"&mat_joueur_Ouverture[i,3]=="FALSE") {
        mat_joueur_Ouverture[i,4]<-"ATTENTION RTP"
      }
      else{
        mat_joueur_Ouverture[i,4]<-"LIMITE"
      }
    }

    output$mat_Ouverture<-
      renderTable(
        mat_joueur_Ouverture[,c(1,4)],colnames=FALSE
      )

    output$Ouverture<-renderInfoBox({
      infoBox(
        "Ouverture", paste0(length(mat_joueur_Ouverture[,1][mat_joueur_Ouverture[,4]=="Joueur disponible"])," joueurs OK"), 
        HTML(paste0(length(mat_joueur_Ouverture[,1][mat_joueur_Ouverture[,4]=="LIMITE"])," joueurs limités"),"\n",
             paste0(length(mat_joueur_Ouverture[,1][mat_joueur_Ouverture[,4]=="ATTENTION RTP"])," joueurs blessés")),
        icon = icon("thumbs-down"),
        color = "red"
      )})

    #Pour les ailiers /Arriere   
    x_Ailier<-x[,1][x[,2]==input$results&x[,3]=="Ailier - Arriere"]
    z_Ailier<-(x_Ailier%in%(x[,1][x[,1]%in%(x[,1][x[,2]==input$results&x[,3]=="Ailier - Arriere"])])#permet de savoir les joueurs qui sont dans equipe et liste de blessé
               &(x[,12][x[,2]==input$results&x[,3]=="Ailier - Arriere"]=="R0"#joueurs blessés dont le stade blesse = R0
                 |x[,12][x[,2]==input$results&x[,3]=="Ailier - Arriere"]=="R1"# | = ET joueurs blessés dont le stade = R1
                 |x[,12][x[,2]==input$results&x[,3]=="Ailier - Arriere"]=="R2"))# | = ET joueurs blessés dont le stade = R2
    w_Ailier<-(x_Ailier%in%(x[,1][x[,1]%in%(x[,1][x[,2]==input$results&x[,3]=="Ailier - Arriere"])])#permet de savoir les joueurs qui sont dans equipe et liste de blessé
               &(x[,12][x[,2]==input$results&x[,3]=="Ailier - Arriere"]=="RA"#joueurs blessés dont le stade blesse = R0
                 |x[,12][x[,2]==input$results&x[,3]=="Ailier - Arriere"]=="R3"))# | = ET joueurs blessés dont le stade = R2
    #Matrice pour contenir les résultats de la selection (joueur + etat de sante)
    mat_joueur_Ailier<-as.data.frame(matrix(ncol=4,nrow=length(x_Ailier)))
    #Si les joueurs ne sont pas dans la selection alors ils sont prets à joueur
    mat_joueur_Ailier[,1]<-as.data.frame(x_Ailier)
    mat_joueur_Ailier[,2]<-as.data.frame(z_Ailier)
    mat_joueur_Ailier[,3]<-as.data.frame(w_Ailier)
    mat_joueur_Ailier[is.na(mat_joueur_Ailier)] <- FALSE

    for (i in 1:length(x_Ailier)){
      if(mat_joueur_Ailier[i,2]=="FALSE"&mat_joueur_Ailier[i,3]=="FALSE"){
        mat_joueur_Ailier[i,4]<-"Joueur disponible"
      }
      else if (mat_joueur_Ailier[i,2]=="TRUE"&mat_joueur_Ailier[i,3]=="FALSE") {
        mat_joueur_Ailier[i,4]<-"ATTENTION RTP"
      }
      else{
        mat_joueur_Ailier[i,4]<-"LIMITE"
      }
    }

    output$mat_Ailier<-   
      renderTable(
        mat_joueur_Ailier[,c(1,4)],colnames=FALSE
      )

    output$Ailier<-renderInfoBox({
      infoBox(
        "Ailier", paste0(length(mat_joueur_Ailier[,1][mat_joueur_Ailier[,4]=="Joueur disponible"])," joueurs OK"), 
        HTML(paste0(length(mat_joueur_Ailier[,1][mat_joueur_Ailier[,4]=="LIMITE"])," joueurs limités"),"\n",
             paste0(length(mat_joueur_Ailier[,1][mat_joueur_Ailier[,4]=="ATTENTION RTP"])," joueurs blessés")),
        icon = icon("thumbs-down"),
        color = "red"
      )})

    #Pour les 1/2 meles et ouverture
    x_Melee<-x[,1][x[,2]==input$results&x[,3]=="1/2 Melee"]
    z_Melee<-(x_Melee%in%(x[,1][x[,1]%in%(x[,1][x[,2]==input$results&x[,3]=="1/2 Melee"])])#permet de savoir les joueurs qui sont dans equipe et liste de blessé
              &(x[,12][x[,2]==input$results&x[,3]=="1/2 Melee"]=="R0"#joueurs blessés dont le stade blesse = R0
                |x[,12][x[,2]==input$results&x[,3]=="1/2 Melee"]=="R1"# | = ET joueurs blessés dont le stade = R1
                |x[,12][x[,2]==input$results&x[,3]=="1/2 Melee"]=="R2"))# | = ET joueurs blessés dont le stade = R2
    w_Melee<-(x_Melee%in%(x[,1][x[,1]%in%(x[,1][x[,2]==input$results&x[,3]=="1/2 Melee"])])#permet de savoir les joueurs qui sont dans equipe et liste de blessé
              &(x[,12][x[,2]==input$results&x[,3]=="1/2 Melee"]=="RA"#joueurs blessés dont le stade blesse = R0
                |x[,12][x[,2]==input$results&x[,3]=="1/2 Melee"]=="R3"))# | = ET joueurs blessés dont le stade = R2
    #Matrice pour contenir les résultats de la selection (joueur + etat de sante)
    mat_joueur_Melee<-as.data.frame(matrix(ncol=4,nrow=length(x_Melee)))
    #Si les joueurs ne sont pas dans la selection alors ils sont prets à joueur
    mat_joueur_Melee[,1]<-as.data.frame(x_Melee)
    mat_joueur_Melee[,2]<-as.data.frame(z_Melee)
    mat_joueur_Melee[,3]<-as.data.frame(w_Melee)
    mat_joueur_Melee[is.na(mat_joueur_Melee)] <- FALSE

    for (i in 1:length(x_Melee)){
      if(mat_joueur_Melee[i,2]=="FALSE"&mat_joueur_Melee[i,3]=="FALSE"){
        mat_joueur_Melee[i,4]<-"Joueur disponible"
      }
      else if (mat_joueur_Melee[i,2]=="TRUE"&mat_joueur_Melee[i,3]=="FALSE") {
        mat_joueur_Melee[i,4]<-"ATTENTION RTP"
      }
      else{
        mat_joueur_Melee[i,4]<-"LIMITE"
      }
    }

    output$mat_Melee<-
      renderTable(
        mat_joueur_Melee[,c(1,4)],colnames=FALSE
      )

    output$Melee<-renderInfoBox({
      infoBox(
        "Melee", paste0(length(mat_joueur_Melee[,1][mat_joueur_Melee[,4]=="Joueur disponible"])," joueurs OK"), 
        HTML(paste0(length(mat_joueur_Melee[,1][mat_joueur_Melee[,4]=="LIMITE"])," joueurs limités"),"\n",
             paste0(length(mat_joueur_Melee[,1][mat_joueur_Melee[,4]=="ATTENTION RTP"])," joueurs blessés")),
        icon = icon("thumbs-down"),
        color = "red"
      )})

    #Pour les talonneurs    
    x_Talonneur<-x[,1][x[,2]==input$results&x[,3]=="Talonneur"]
    z_Talonneur<-(x_Talonneur%in%(x[,1][x[,1]%in%(x[,1][x[,2]==input$results&x[,3]=="Talonneur"])])#permet de savoir les joueurs qui sont dans equipe et liste de blessé
                  &(x[,12][x[,2]==input$results&x[,3]=="Talonneur"]=="R0"#joueurs blessés dont le stade blesse = R0
                    |x[,12][x[,2]==input$results&x[,3]=="Talonneur"]=="R1"# | = ET joueurs blessés dont le stade = R1
                    |x[,12][x[,2]==input$results&x[,3]=="Talonneur"]=="R2"))# | = ET joueurs blessés dont le stade = R2
    w_Talonneur<-(x_Talonneur%in%(x[,1][x[,1]%in%(x[,1][x[,2]==input$results&x[,3]=="Talonneur"])])#permet de savoir les joueurs qui sont dans equipe et liste de blessé
                  &(x[,12][x[,2]==input$results&x[,3]=="Talonneur"]=="RA"#joueurs blessés dont le stade blesse = R0
                    |x[,12][x[,2]==input$results&x[,3]=="Talonneur"]=="R3"))# | = ET joueurs blessés dont le stade = R2
    #Matrice pour contenir les résultats de la selection (joueur + etat de sante)
    mat_joueur_Talonneur<-as.data.frame(matrix(ncol=4,nrow=length(x_Talonneur)))
    #Si les joueurs ne sont pas dans la selection alors ils sont prets à joueur
    mat_joueur_Talonneur[,1]<-as.data.frame(x_Talonneur)
    mat_joueur_Talonneur[,2]<-as.data.frame(z_Talonneur)
    mat_joueur_Talonneur[,3]<-as.data.frame(w_Talonneur)
    mat_joueur_Talonneur[is.na(mat_joueur_Talonneur)] <- FALSE

    for (i in 1:length(x_Talonneur)){
    if(mat_joueur_Talonneur[i,2]=="FALSE"&mat_joueur_Talonneur[i,3]=="FALSE"){
        mat_joueur_Talonneur[i,4]<-"Joueur disponible"
      }
      else if (mat_joueur_Talonneur[i,2]=="TRUE"&mat_joueur_Talonneur[i,3]=="FALSE") {
        mat_joueur_Talonneur[i,4]<-"ATTENTION RTP"
      }
      else{
        mat_joueur_Talonneur[i,4]<-"LIMITE"
      }
    }


    output$mat_Talonneur<-
      renderTable(
        mat_joueur_Talonneur[,c(1,4)],colnames=FALSE
      )

    output$Talonneur<-renderInfoBox({
      infoBox(
        "Talonneur", paste0(length(mat_joueur_Talonneur[,1][mat_joueur_Talonneur[,4]=="Joueur disponible"])," joueurs OK"), 
        HTML(paste0(length(mat_joueur_Talonneur[,1][mat_joueur_Talonneur[,4]=="LIMITE"])," joueurs limités"),"\n",
             paste0(length(mat_joueur_Talonneur[,1][mat_joueur_Talonneur[,4]=="ATTENTION RTP"])," joueurs blessés")),
        icon = icon("thumbs-down"),
        color = "red"
      )})

    #pour la 3eme Ligne
    x_3L<-x[,1][x[,2]==input$results&x[,3]=="3eme Ligne"]
    z_3L<-(x_3L%in%(x[,1][x[,1]%in%(x[,1][x[,2]==input$results&x[,3]=="3eme Ligne"])])#permet de savoir les joueurs qui sont dans equipe et liste de blessé
           &(x[,12][x[,2]==input$results&x[,3]=="3eme Ligne"]=="R0"#joueurs blessés dont le stade blesse = R0
             |x[,12][x[,2]==input$results&x[,3]=="3eme Ligne"]=="R1"# | = ET joueurs blessés dont le stade = R1
             |x[,12][x[,2]==input$results&x[,3]=="3eme Ligne"]=="R2"))# | = ET joueurs blessés dont le stade = R2
    w_3L<-(x_3L%in%(x[,1][x[,1]%in%(x[,1][x[,2]==input$results&x[,3]=="3eme Ligne"])])#permet de savoir les joueurs qui sont dans equipe et liste de blessé
           &(x[,12][x[,2]==input$results&x[,3]=="3eme Ligne"]=="RA"#joueurs blessés dont le stade blesse = R0
             |x[,12][x[,2]==input$results&x[,3]=="3eme Ligne"]=="R3"))# | = ET joueurs blessés dont le stade = R2
    #Matrice pour contenir les résultats de la selection (joueur + etat de sante)
    mat_joueur_3L<-as.data.frame(matrix(ncol=4,nrow=length(x_3L)))
    #Si les joueurs ne sont pas dans la selection alors ils sont prets à joueur
    mat_joueur_3L[,1]<-as.data.frame(x_3L)
    mat_joueur_3L[,2]<-as.data.frame(z_3L)
    mat_joueur_3L[,3]<-as.data.frame(w_3L)
    mat_joueur_3L[is.na(mat_joueur_3L)] <- FALSE

    for (i in 1:length(x_3L)){
      if(mat_joueur_3L[i,2]=="FALSE"&mat_joueur_3L[i,3]=="FALSE"){
        mat_joueur_3L[i,4]<-"Joueur disponible"
      }
      else if (mat_joueur_3L[i,2]=="TRUE"&mat_joueur_3L[i,3]=="FALSE") {
        mat_joueur_3L[i,4]<-"ATTENTION RTP"
      }
      else{
        mat_joueur_3L[i,4]<-"LIMITE"
      }
    }

    output$mat_3L<-
      renderTable(
        mat_joueur_3L[,c(1,4)],colnames=FALSE
      )

    output$TroisiemeL<-renderInfoBox({
      infoBox(
        "3eme Ligne", paste0(length(mat_joueur_3L[,1][mat_joueur_3L[,4]=="Joueur disponible"])," joueurs OK"), 
        HTML(paste0(length(mat_joueur_3L[,1][mat_joueur_3L[,4]=="LIMITE"])," joueurs limités"),"\n",
             paste0(length(mat_joueur_3L[,1][mat_joueur_3L[,4]=="ATTENTION RTP"])," joueurs blessés")),
        icon = icon("thumbs-down"),
        color = "red"
      )})

    #Pour les centres    
    x_Centre<-x[,1][x[,2]==input$results&x[,3]=="Centre"]
    z_Centre<-(x_Centre%in%(x[,1][x[,1]%in%(x[,1][x[,2]==input$results&x[,3]=="Centre"])])#permet de savoir les joueurs qui sont dans equipe et liste de blessé
               &(x[,12][x[,2]==input$results&x[,3]=="Centre"]=="R0"#joueurs blessés dont le stade blesse = R0
                 |x[,12][x[,2]==input$results&x[,3]=="Centre"]=="R1"# | = ET joueurs blessés dont le stade = R1
                 |x[,12][x[,2]==input$results&x[,3]=="Centre"]=="R2"))# | = ET joueurs blessés dont le stade = R2
    w_Centre<-(x_Centre%in%(x[,1][x[,1]%in%(x[,1][x[,2]==input$results&x[,3]=="Centre"])])#permet de savoir les joueurs qui sont dans equipe et liste de blessé
               &(x[,12][x[,2]==input$results&x[,3]=="Centre"]=="RA"#joueurs blessés dont le stade blesse = R0
                 |x[,12][x[,2]==input$results&x[,3]=="Centre"]=="R3"))# | = ET joueurs blessés dont le stade = R2
    #Matrice pour contenir les résultats de la selection (joueur + etat de sante)
    mat_joueur_Centre<-as.data.frame(matrix(ncol=4,nrow=length(x_Centre)))
    #Si les joueurs ne sont pas dans la selection alors ils sont prets à joueur
    mat_joueur_Centre[,1]<-as.data.frame(x_Centre)
    mat_joueur_Centre[,2]<-as.data.frame(z_Centre)
    mat_joueur_Centre[,3]<-as.data.frame(w_Centre)
    mat_joueur_Centre[is.na(mat_joueur_Centre)] <- FALSE

    for (i in 1:length(x_Centre)){
      if(mat_joueur_Centre[i,2]=="FALSE"&mat_joueur_Centre[i,3]=="FALSE"){
        mat_joueur_Centre[i,4]<-"Joueur disponible"
      }
      else if (mat_joueur_Centre[i,2]=="TRUE"&mat_joueur_Centre[i,3]=="FALSE") {
        mat_joueur_Centre[i,4]<-"ATTENTION RTP"
      }
      else{
        mat_joueur_Centre[i,4]<-"LIMITE"
      }
    }

    output$mat_Centre<-
      renderTable(
        mat_joueur_Centre[,c(1,4)],colnames=FALSE
      )

    output$Centre<-renderInfoBox({
      infoBox(
        "Centre", paste0(length(mat_joueur_Centre[,1][mat_joueur_Centre[,4]=="Joueur disponible"])," joueurs OK"), 
        HTML(paste0(length(mat_joueur_Centre[,1][mat_joueur_Centre[,4]=="LIMITE"])," joueurs limités"),"\n",
             paste0(length(mat_joueur_Centre[,1][mat_joueur_Centre[,4]=="ATTENTION RTP"])," joueurs blessés")),
        icon = icon("thumbs-down"),
        color = "red"
      )})

    # Pour la seconde Ligne
    x_2L<-x[,1][x[,2]==input$results&x[,3]=="2eme Ligne"]
    z_2L<-(x_2L%in%(x[,1][x[,1]%in%(x[,1][x[,2]==input$results&x[,3]=="2eme Ligne"])])#permet de savoir les joueurs qui sont dans equipe et liste de blessé
           &(x[,12][x[,2]==input$results&x[,3]=="2eme Ligne"]=="R0"#joueurs blessés dont le stade blesse = R0
             |x[,12][x[,2]==input$results&x[,3]=="2eme Ligne"]=="R1"# | = ET joueurs blessés dont le stade = R1
             |x[,12][x[,2]==input$results&x[,3]=="2eme Ligne"]=="R2"))# | = ET joueurs blessés dont le stade = R2
    w_2L<-(x_2L%in%(x[,1][x[,1]%in%(x[,1][x[,2]==input$results&x[,3]=="2eme Ligne"])])#permet de savoir les joueurs qui sont dans equipe et liste de blessé
           &(x[,12][x[,2]==input$results&x[,3]=="2eme Ligne"]=="RA"#joueurs blessés dont le stade blesse = R0
             |x[,12][x[,2]==input$results&x[,3]=="2eme Ligne"]=="R3"))# | = ET joueurs blessés dont le stade = R2
    #Matrice pour contenir les résultats de la selection (joueur + etat de sante)
    mat_joueur_2L<-as.data.frame(matrix(ncol=4,nrow=length(x_2L)))
    #Si les joueurs ne sont pas dans la selection alors ils sont prets à joueur
    mat_joueur_2L[,1]<-as.data.frame(x_2L)
    mat_joueur_2L[,2]<-as.data.frame(z_2L)
    mat_joueur_2L[,3]<-as.data.frame(w_2L)
    mat_joueur_2L[is.na(mat_joueur_2L)] <- FALSE

    for (i in 1:length(x_2L)){
      if(mat_joueur_2L[i,2]=="FALSE"&mat_joueur_2L[i,3]=="FALSE"){
        mat_joueur_2L[i,4]<-"Joueur disponible"
      }
      else if (mat_joueur_2L[i,2]=="TRUE"&mat_joueur_2L[i,3]=="FALSE") {
        mat_joueur_2L[i,4]<-"ATTENTION RTP"
      }
      else{
        mat_joueur_2L[i,4]<-"LIMITE"
      }
    }

    output$mat_2L<-
      renderTable(
        mat_joueur_2L[,c(1,4)],colnames=FALSE
      )
    output$SecondeL<-renderInfoBox({
      infoBox(
        "2eme Ligne", paste0(length(mat_joueur_2L[,1][mat_joueur_2L[,4]=="Joueur disponible"])," joueurs OK"), 
        HTML(paste0(length(mat_joueur_2L[,1][mat_joueur_2L[,4]=="LIMITE"])," joueurs limités"),"\n",
             paste0(length(mat_joueur_2L[,1][mat_joueur_2L[,4]=="ATTENTION RTP"])," joueurs blessés")),
        icon = icon("thumbs-down"),
        color = "red"
      )})
  })
}

shinyApp(ui = ui, server = server)

Thank you for your answer, you'll find below the response i Have from the app:


── Attaching packages ─────────────────────────────────────── tidyverse 1.3.0 ──
✔ ggplot2 3.2.1     ✔ purrr   0.3.3
✔ tibble  2.1.3     ✔ dplyr   0.8.3
✔ tidyr   1.0.0     ✔ stringr 1.4.0
✔ readr   1.3.1     ✔ forcats 0.4.0
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()

Attaching package: ‘shinydashboard’

The following object is masked from ‘package:graphics’:

    box


Attaching package: ‘psych’

The following objects are masked from ‘package:ggplot2’:

    %+%, alpha

Loading required package: spatstat.data
Loading required package: nlme

Attaching package: ‘nlme’

The following object is masked from ‘package:dplyr’:

    collapse

Loading required package: rpart

spatstat 1.58-2       (nickname: ‘Not Even Wrong’) 
For an introduction to spatstat, type ‘beginner’ 


Note: R version 3.5.2 (2018-12-20) is more than 9 months old; we strongly recommend upgrading to the latest version

Attaching package: ‘spatstat’

The following objects are masked from ‘package:psych’:

    reflect, rescale


Attaching package: ‘raster’

The following objects are masked from ‘package:spatstat’:

    area, rotate, shift

The following object is masked from ‘package:nlme’:

    getData

The following object is masked from ‘package:dplyr’:

    select

The following object is masked from ‘package:tidyr’:

    extract

Loading required package: spam
Loading required package: dotCall64
Loading required package: grid
Spam version 2.2-1 (2018-12-20) is loaded.
Type 'help( Spam)' or 'demo( spam)' for a short introduction 
and overview of this package.
Help for individual functions is also obtained by adding the
suffix '.spam' to the function name, e.g. 'help( chol.spam)'.

Attaching package: ‘spam’

The following objects are masked from ‘package:base’:

    backsolve, forwardsolve

Loading required package: maps

Attaching package: ‘maps’

The following object is masked from ‘package:purrr’:

    map

See www.image.ucar.edu/~nychka/Fields for
 a vignette and other supplements. 

Attaching package: ‘fields’

The following object is masked from ‘package:psych’:

    describe

Loading required package: tcltk
Warning: no DISPLAY variable so Tk is not available

Attaching package: ‘tcltk2’

The following objects are masked from ‘package:raster’:

    values, values<-

The following object is masked from ‘package:shiny’:

    tag

gdata: read.xls support for 'XLS' (Excel 97-2004) files ENABLED.

gdata: read.xls support for 'XLSX' (Excel 2007+) files ENABLED.

Attaching package: ‘gdata’

The following objects are masked from ‘package:raster’:

    resample, trim

The following objects are masked from ‘package:dplyr’:

    combine, first, last

The following object is masked from ‘package:purrr’:

    keep

The following object is masked from ‘package:stats’:

    nobs

The following object is masked from ‘package:utils’:

    object.size

The following object is masked from ‘package:base’:

    startsWith

Unable to open file 'FCG Fichier Médical_Fevrier_2020.xlsm'.
Warning in system(cmd, intern = !verbose) :
  running command ''/usr/bin/perl' '/opt/R/3.5.2/lib/R/library/gdata/perl/xls2csv.pl'  'FCG Fichier Médical_Fevrier_2020.xlsm' '/tmp/RtmpeWW7AV/file1a3bbc586f.csv' 'Equipe'' had status 2
Error in value[[3L]](cond) : invalid 'file' argument
Calls: local ... tryCatch -> tryCatchList -> tryCatchOne -> <Anonymous>
Execution halted

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM