-
fonction switch R
Bonjour,
Je developpe une application R Shiny et, dans server.r, je fais appel à la fonction switch (expression, list)
Dans le paramètre list, j'ai plusieurs items et je voudrais externaliser la liste d'items dans un fichier. Est ce possible ?
Merci d'avance
-
Bonjour,
vous voulez dire que vous voulez écrire les différentes possibilités du switch dans un fichier ?
je ne suis pas certain de saisir exactement la chose !
-
Bonjour,
Par exemple, dans l'instruction switch(1,"red","green","blue"), je veux deplaçer le contenu 1,"red","green","blue" dans un fichier externe et donc comment faire appel dans la fonction switch à ce fichier externe ?
j'espère être clair
rectificatif : c'est uniquement la partie "red","green","blue" que je souhaite déplacer dans un fichier externe
-
ok, il faut donc juste lire le fichier avec les possibilités (red blue...) en amont de l'appel à la fonction switch non ?
-
Bonjour,
Une possibilité peut être de lire le fichier au chargement de l'appli : pour cela faire l'appel (par exemple "read.csv(...)") dans un fichier "global.R", et dans ce même fichier stocker les valeurs à utiliser dans le switch dans un élément de type vecteur ou liste, puis faire appel à cet élément dans le fichier "server.R".
HTH ! :)
Cordialement,
A.D.
-
Bonjour,
oui mais la difficulté réside dans le fait que dans la fonction Switch les items de la liste sont à la suite de l'expression séparés par des ,
Donc cette suite d'items ne peut pas être déclarée dans un objet de type Vector ou List.
A contrario d'un selectInput où la liste des items est déclaré dans l'option choices dont la valeur est rattachée à un objet de type List
-
hum en effet. Tu aurais un bout de code ?
sinon est-il impératif d'externaliser la liste ? ou d'utiliser switch ? je pense que tu peux remplacer le switch par une autre structure ou tu pourrais exploiter une lecture en amont de ton fichier facilement non ?
-
Est-ce que remplacer
Code:
switch(1, "red", "green", "blue")
par :
Code:
c("red", "green", "blue")[1]
résout ton problème ?
Dans ce cas, tu peux stocker le c("red", "green", "blue") dans un fichier .rds ou .RData.
-
Ok cela répond parfaitement à mes attentes
un grand MERCI à Huitziii
NB : j'ai stocké le le contenu du C(...) dans un fichier properties que je lis avec un read.properties