Hi,
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 dowload 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 sous R ######
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"))
)
)
))
###### Code qui marche ######
##### 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)