Shiny - SelectInput within tables

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Diane MANZON
Messages : 56
Enregistré le : 18 Juin 2018, 08:31

Shiny - SelectInput within tables

Messagepar Diane MANZON » 09 Mar 2022, 14:23

Bonjour à tous,

Je travaille actuellement avec Shiny et je rencontre une difficulté.
Je travaille avec 2 fichiers (ui et server).
Dans la partie server, je crée une matrice toute simple (code reproductible ci-dessous) :

Code : Tout sélectionner

m = matrix(rep(1), nrow=5, ncol=6)

J'aimerais avoir dans la première colonne, pour chaque ligne, un menu déroulant avec plusieurs choix (exemple : A, B et C).
Je sais faire cette opération mais pas dans un tableau en utilisant la fonction selectInput dans la partie ui.
Y a-t-il un moyen "basique" de faire cela sans passer par des fonctions JS ou HTML ?

Si quelqu'un a une idée, je suis preneuse...

Merci par avance,

Diane

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Re: Shiny - SelectInput within tables

Messagepar Mickael Canouil » 11 Mar 2022, 15:56

Bonjour,

je ne comprends pas le résultat souhaité ou même l'utilisation de la matrice.

PS : A quoi sert `rep()` dans votre code, sachant que "rep(1)=1"

Cordialement,
Mickaël
mickael.canouil.fr | rlille.fr

Diane MANZON
Messages : 56
Enregistré le : 18 Juin 2018, 08:31

Re: Shiny - SelectInput within tables

Messagepar Diane MANZON » 11 Mar 2022, 16:39

Bonjour Mickael,

J'aimerais avoir un menu déroulant dans chaque cellule de ma première colonne où je puisse choisir "A", "B" ou "C".

P.S: C'est un exemple complètement fictif, j'ai mis des "1" par défaut dans toute la matrice

J'espère avoir été plus claire, je n'ai toujours pas résolu mon problème...

Cordialement,

Diane

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Re: Shiny - SelectInput within tables

Messagepar Mickael Canouil » 12 Mar 2022, 16:42

Vous voulez un tableau de menus défilants ?

Le rep n'apporte ici rien, puisque aucune répétition n'est indiqué, et donc que ce soit 1 ou re(1), le principe de recyclage des valeurs sera employé.
La présence de rep allonge la durée d'exécution.
Mickaël
mickael.canouil.fr | rlille.fr

Diane MANZON
Messages : 56
Enregistré le : 18 Juin 2018, 08:31

Re: Shiny - SelectInput within tables

Messagepar Diane MANZON » 14 Mar 2022, 08:20

Bonjour Mickael,

Merci, je note pour rep(1) que j'ai modifié en 1 dans m.
Je voudrais inclure un menu déroulant dans chaque cellule de la première colonne de la matrice. Voici un exemple où ce menu (selectInput) est en dehors de la matrice:
Partie UI :

Code : Tout sélectionner

ui = dashboardPage(skin="red",
  dashboardHeader(title="Test"),
    dashboardSidebar(
      sidebarMenu(
        menuItem("Issue", tabName = "readData",icon = icon("folder-open"))
      )
    ),
    dashboardBody(
      tabItems(
      # Case study configuration
        tabItem(tabName = "readData",
          h2("Issue"),
          selectInput(inputId = "Resp", label = "SelectInput", choice = c("Y1", "Y2"), selected ="Y1"),

        )
      )
  )
)


Partie server

Code : Tout sélectionner

shinyServer(function(input, output, session){
 
  updateSelectInput(session, "Resp", label = "SelectInput", choices = c("A","B","C"), selected = character(0))
  m = matrix(1, nrow=5, ncol=6)
  rownames(m) = colnames(iris)
  output$test = renderDT(m, options = list(dom = 't'))
 
})


Merci encore pour votre aide,

Diane

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Re: Shiny - SelectInput within tables

Messagepar Mickael Canouil » 14 Mar 2022, 08:48

Bonjour,

je reste perplexe quant à l'usage, mais voici un exemple que vous pouvez facilement modifier pour inclure un menu plutôt qu'un bouton "radio" : https://rstudio.github.io/DT/011-radio.html

Cordialement,
Mickaël
mickael.canouil.fr | rlille.fr


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité