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 :

erreur else if


Sujet :

R

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Février 2016
    Messages : 8
    Points : 7
    Points
    7
    Par défaut erreur else if
    Bonjour,

    Je suis en train de faire un programme avec des conditions "else if" mais ca ne marche pas...
    J'ai une erreur qui dit else in else...

    Savez-vous pourquoi? Et si oui, pouvez-vous m'aider?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    indice=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10,1.2, 2.4, 3.6, 4.8, 6, 7.2, 8.4, 9.6, 10.8, 12,1.4, 2.8, 4.2, 5.6, 7, 8.4, 9.8, 11.2, 12.6, 14,1.6, 3.2, 4.8, 6.4, 8, 9.6, 11.2, 12.8, 14.4, 16,1.8, 3.6, 5.4, 7.2, 9, 10.8, 12.6, 14.4, 16.2, 18,2, 4, 6, 8, 10, 12, 14, 16, 18, 20,2.2, 4.4, 6.6, 8.8, 11, 13.2, 15.4, 17.6, 19.8, 22,2.4, 4.8, 7.2, 9.6, 12, 14.4, 16.8, 19.2, 21.6, 24,2.6, 5.2, 7.8, 10.4, 13, 15.6, 18.2, 20.8, 23.4, 26,2.8, 5.6, 8.4, 11.2, 14, 16.8, 19.6, 22.4, 25.2, 28,
             3, 6, 9, 12, 15, 18, 21, 24, 27, 30)
    mat31415=matrix(indice,11,10,byrow=T)
     
    seuils=c(304.15,294.15,306.15,296.15,308.15,298.15,310.15,300.15,312.15,302.15,314.15,304.15,316.15,306.15,318.15,308.15,320.15,310.15,322.15,312.15,324.15,314.15)
     
    matseuil=matrix(seuils,11,2,byrow=T)
     
    indextype=c(2,rep(c(1,2),30))
     
    data <- read.table("source.csv", sep=";", dec=",", quote="\"")
     
    newDataFrame = matrix(NA,400,61)
     
    for (i in 1:dim(newDataFrame)[1]) {
      s=1
      for (j in 1:dim(newDataFrame)[2]){
        if(data[i,j]< 292.15 & (s==1) & indextype[j]==2)
        {
          newDataFrame[i,j]=0
        } 
     
    		else if(data[i,j] < 302.15 && (s == 1) && indextype[j] == 1)
    		newDataFrame[i,j]=0 else
    				if(data[i,j]<292.15 && (s!=1) && indextype[j]==2)
    			newDataFrame[i,j]=mat31415[k,s-1] else
    				if(data[i,j]<302.15 && (s!=1) && indextype[j]==1)
               newDataFrame[i,j]=mat31415[k,s-1] else
    				if(indice<length(mat31415)+1)
    			newDataFrame[i,j]= mat31415[k,s] else
    				if(data[i,j]>=292.15 & indextype[j]==2 || data[i,j]>=302.15 & indextype[j]==1) 
     
     
                  {
                    k=1
                    while(data[i,j]> matseuil[k,indextype[j]])
                    {
                      k=k+1
                    }
     
                    newDataFrame[i,j]= mat31415[k,s]
                    s=s+1
                  }
      }
    }
     
    write.table.....

  2. #2
    Nouveau membre du Club

    Inscrit en
    Octobre 2007
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 33
    Points : 36
    Points
    36
    Par défaut
    Pourrais-tu donner une instruction qui remplace le data <- read.table("source.csv", sep=";", dec=",", quote="\"") par une structure équivalente

    Car à la lecture, il n'y a pas d'erreur évidente, et sans le fichier c'est une autre erreur que produit R

    Pierre

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Février 2016
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    oula, une structure équivalente?

    Si tu veux que je décrive ma donnée, je peux^^

    C'est un fichier de 61 colonnes (représentant mes jours et mes nuits) sur 400lignes (représentant mes mails). Mes valeurs correspondent à des températures en Kelvin (compris entre 280 et 316)
    J'envoie le fichier, si cela peut t'aider à m'aider, c'est avec grd plaisir! (il est en xls, j'arrive pas à le télécharger en csv)
    Fichiers attachés Fichiers attachés

  4. #4
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Points : 2 673
    Points
    2 673
    Par défaut
    Bonjour,

    Juste une remarque comme ça, avez-vous essayé de mettre le "else if" sur la même ligne que l'accolade fermante du 1er "if" ?
    Egalement, il me semble qu'il manque pas mal d'accolades ouvrantes et fermantes pour toutes les sections "if" et "else".

    Pour rappel, la structure devrait être la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (condition1) {
       expression1
    } else if (condition2) {
       expression2
    } else {
       expression3
    }

    Cordialement,


    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Février 2016
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Merci pour la petite aide.
    Mais rien n'y fait.

    Un peu désemparée mais je vais y arriver, enfin j'espère!


    Merci en tout cas pour vos conseils!


    Laura

  6. #6
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Points : 2 673
    Points
    2 673
    Par défaut
    Bonjour,

    Avez-vous repris votre code en faisant bien attention aux accolades et positions des "else if" ?
    Si oui, peut-être pourriez-vous poster ici le code corrigé et l'erreur qu'il renvoie, cela nous aiderait peut-être à vous aider à débugger tout ça ^^

    Bonne continuation


    Cordialement,


    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Février 2016
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    C'est trop adorable...
    J'ai aucune erreur...sauf que le programme ne fait pas mes conditions...mais aucun message d'erreur.
    Voici ma correction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    indice=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10,1.2, 2.4, 3.6, 4.8, 6, 7.2, 8.4, 9.6, 10.8, 12,1.4, 2.8, 4.2, 5.6, 7, 8.4, 9.8, 11.2, 12.6, 14,1.6, 3.2, 4.8, 6.4, 8, 9.6, 11.2, 12.8, 14.4, 16,1.8, 3.6, 5.4, 7.2, 9, 10.8, 12.6, 14.4, 16.2, 18,2, 4, 6, 8, 10, 12, 14, 16, 18, 20,2.2, 4.4, 6.6, 8.8, 11, 13.2, 15.4, 17.6, 19.8, 22,2.4, 4.8, 7.2, 9.6, 12, 14.4, 16.8, 19.2, 21.6, 24,2.6, 5.2, 7.8, 10.4, 13, 15.6, 18.2, 20.8, 23.4, 26,2.8, 5.6, 8.4, 11.2, 14, 16.8, 19.6, 22.4, 25.2, 28,
             3, 6, 9, 12, 15, 18, 21, 24, 27, 30)
    mat31415=matrix(indice,11,10,byrow=T)
     
    seuils=c(304.15,294.15,306.15,296.15,308.15,298.15,310.15,300.15,312.15,302.15,314.15,304.15,316.15,306.15,318.15,308.15,320.15,310.15,322.15,312.15,324.15,314.15)
     
    matseuil=matrix(seuils,11,2,byrow=T)
     
    indextype=c(2,rep(c(1,2),30))
     
    data <- read.table("inte_moyenne.csv", sep=";", dec=",", quote="\"")
     
    newDataFrame = matrix(NA,400,61)
     
    for (i in 1:dim(newDataFrame)[1]) {
      s=1
      for (j in 1:dim(newDataFrame)[2]){
        if(data[i,j]< 292.15 & (s==1) & indextype[j]==2)
        {
          newDataFrame[i,j]=0
        } 
     
    		 if((data[i,j] < 302.15 && (s==1) && indextype[j]==1)){
    			newDataFrame[i,j]=0 
    				} else if((data[i,j]<292.15 && (s!=1) && indextype[j]==2)) {
    			newDataFrame[i,j]=mat31415[k,s-1] 
    				} else if ((data[i,j]<302.15 && (s!=1) && indextype[j]==1)){
                newDataFrame[i,j]=mat31415[k,s-1] 
    				} else if ((data[i,j]>=292.15 & indextype[j]==2 || data[i,j]>=302.15 & indextype[j]==1)){
                    k=1
                    while(data[i,j]> matseuil[k,indextype[j]])
                    {
                      k=k+1
                    }
     
                    newDataFrame[i,j]= mat31415[k,s]
                    s=s+1
                  }
      }
    }
     
    write.table(newDataFrame, file="new.csv", row.names=FALSE, col.names=FALSE, append=TRUE)
     
    View(newDataFrame)
    Si vous trouvez, mon week-end sera excellent !
    Je m'y planche demain, là, j'ai mon cerveau à plat !

    Merci encore pour votre aide.

Discussions similaires

  1. erreur else inattendu
    Par neo-13 dans le forum R
    Réponses: 3
    Dernier message: 07/04/2017, 15h55
  2. [MySQL] Erreur Else unexpected!
    Par Ayosha dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/05/2011, 21h51
  3. IF et ELSE message d'erreur
    Par nO_life dans le forum Langage
    Réponses: 3
    Dernier message: 01/03/2009, 18h46
  4. [TPW][Débutant] else (erreur à la compilation)
    Par dimi2 dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 05/04/2008, 16h11
  5. [RegEx] Problème d'affichage d'un else en cas d'erreur
    Par Mr[ben] dans le forum Langage
    Réponses: 6
    Dernier message: 19/12/2007, 14h04

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