IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Affichage langage R


Sujet :

R

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    novembre 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2016
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Affichage langage R
    Nom : essai1.PNG
Affichages : 3343
Taille : 32,5 Ko

    Bonjour,
    Tout d'abord merci à tous, ce forum est vraiment sympa !

    J'ai juste un problème dans mon affichage, le code fonctionne, il n'y a pas d'erreur, en revanche comme vous pouvez le voir sur l'image, le print("pas d'équipement") s'affiche alors qu'on a trouvé un équipement compatible à 80%. De même l'équipement compatible à 80% s'affiche plusieurs fois.
    Mon i va de 1 à 13, il m'affiche donc 13 réponses.
    J'étais pourtant persuadée que le résultat m'afficherai uniquement le résultat du "if", ou celui de premier "else if", ou celui du second "else if", ou le "else"
    Je ne comprends pas pourquoi l'affichage est comme ca....


    Merci d'avance

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    décembre 2015
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : décembre 2015
    Messages : 72
    Points : 180
    Points
    180
    Par défaut
    Bonjour,

    à priori je dirai que votre code fonctionne parfaitement. Vous avez un i qui va de 1 à 13, et autant d'affichage de résultats de test (peut-être manque-t-il une partie de la sortie).

    Pour en être sûr, ajoutez un print(i) en début de boucle pour vous assurer qu'il n'y a qu'un seul affichage par tour de boucle

    Cordialement

    VV

  3. #3
    Membre éclairé
    Homme Profil pro
    Chercheur
    Inscrit en
    décembre 2015
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : décembre 2015
    Messages : 327
    Points : 793
    Points
    793
    Par défaut
    Il n'y a pas d'erreur. Le résultat est normal car il y a un test à chaque itération, donc un "print" par itération. Pour sortir de la boucle quand une certaine condition est trouvée, il suffit d'ajouter en fin de condition la commande "break", pour sauter une condition sans exécuter la suite de la boucle, il suffit de la commande "next". Exemples :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    # Pour une boucle qui s'arrête à la première occurrence de compatibilité à 80%
    for( i in 1:13) {
      ...
      else if( ...) {
        ...
        print( "compatible a 80%")
        break
      } else ...
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    # Pour une boucle qui saute la suite du traitement quand on a une compatibilité de 80 %
    for( i in 1:13) {
      ...
      else if( ...) {
        ...
        print( "compatible a 80%")
        next
      } else {
      }
    # traitements communs à toutes les conditions sauf 80 %
      ...
    }
    Par contre, il y a peut-être un problème de programmation.
    1) w <= bdd[i,1] : d'après l'affichage, w, et donc bdd[i,1] sont des chaines de caractères ; le test se fait alors sur l'ordre naturel des chaines de caractères, c'est-à-dire l'ordre lexicographique ; pour modifier cet ordre, il faut alors utiliser des facteurs ordonnés.
    2) w, x, y, z, v sont des constantes :
    a) la boucle teste l'objet décrit par cet ensemble de valeurs pour les 13 objets de bdd ; la réponse se lit alors "pas d'équipement" par rapport à l'objet 1 de bdd, compatible à 80 % par rapport à l'objet 2....
    b) le print( Equip_80( w, x, y, z)) donnera à chaque appel le même résultat puisque ses arguments sont des constantes ; ne serait-ce pas plutôt print( Equip_80( bdd[i,1], bdd[i,2], bdd[i,3], bdd[i,4])) qui est demandé ?

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    novembre 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2016
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    merci à tous vos réponses m'ont beaucoup aidé.
    Effectivement c'est plus logique d'afficher "Equi_80(bdd[i,2],bdd[i,3],bdd[i,4],bdd[i,5]"

    En revanche, si je veux afficher UNIQUEMENT Equi_100, Equi_80, Equi_60 OU "pas d'equipement", et une SEULE fois, est ce possible ??

    merci d'avance
    Bonne journée

  5. #5
    Membre éclairé
    Homme Profil pro
    Chercheur
    Inscrit en
    décembre 2015
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : décembre 2015
    Messages : 327
    Points : 793
    Points
    793
    Par défaut
    Est-ce cela veut dire :
    1) répondre que l'objet (w, x, y, z, v) est compatible à par exemple 80% avec les données de la base ;
    2) lister alors l'ensemble des données de la base permettant de définir cette compatibilité ?

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    novembre 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2016
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    En fait je voudrais que si il y a un ou deux équipements compatible à 80% par exemple, que l'algorithme m'affiche le ou les 2 équipements à 80% et non 2 équipements compatibles à 80% et 11 autres lignes avec marqué "pas d'équipement".

    De même, si il n'existe pas d'équipement, que l'algorithme m'affiche une seule fois "pas d'équipement" et pas 13 fois.

    merci encore !

Discussions similaires

  1. [langage] récupérer l'affichage de wget
    Par roddy dans le forum Langage
    Réponses: 10
    Dernier message: 06/07/2004, 14h41
  2. [langage] pause dans l'affichage
    Par louisis dans le forum Langage
    Réponses: 6
    Dernier message: 01/07/2004, 16h37
  3. [langage] structures complexes et affichage
    Par mat21 dans le forum Langage
    Réponses: 5
    Dernier message: 18/02/2004, 16h38
  4. [langage] Problème d'affichage
    Par marcoss dans le forum Langage
    Réponses: 3
    Dernier message: 29/08/2003, 14h05
  5. [langage]Affichage français!!
    Par jpc_50 dans le forum Langage
    Réponses: 5
    Dernier message: 06/01/2003, 19h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo