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 :

Problème sur boucle


Sujet :

R

  1. #1
    maf
    maf est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2003
    Messages : 76
    Points : 43
    Points
    43
    Par défaut Problème sur boucle
    Bonjour,

    Je vous expose mon script R :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    i<-1
    while (i <=787){y<-Table[which(Table$C3>=(i-1)*3&Table$C3<(i*3)),]
    i<-i+1}
    Comme vous pouvez le voir j'aimerais faire un découpage de ma table "Table" par rapport aux valeurs de la colonne C3 qui prennent des valeurs de 0 à 2360.
    Si je lance la boucle telle quelle, elle ne me sort que la dernière itération à savoir pour i = 787 ce qui est logique.

    Comment pourrais-je faire afin que j'obtienne 787 nouvelles tables et non une seule ...
    J'ai tenté de mettre y_i mais il ne traite pas la valeur du i

    Merci d'avance

  2. #2
    Membre confirmé
    Homme Profil pro
    MCU
    Inscrit en
    Juillet 2010
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : MCU
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2010
    Messages : 185
    Points : 486
    Points
    486
    Par défaut
    Bonjour,

    Je n'ai pas compris le probleme avec la valeur 787. Vous voulez une table differente pour chaque valeur de C3 inferieure a 787 et une table pour les valeurs de C3 superieures ou egales a 787?

    Sinon,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    split(Table, Table$C3)
    ## Avec la modif 787
    Table$C4 <- ifelse(Table$C3 > 787, 787, Table$C3)
    split(Table, Table$C4)
    HTH,

    Vincent

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 208
    Points : 461
    Points
    461
    Par défaut
    Citation Envoyé par maf Voir le message
    Bonjour,

    Comment pourrais-je faire afin que j'obtienne 787 nouvelles tables et non une seule ...
    J'ai tenté de mettre y_i mais il ne traite pas la valeur du i
    Salut,
    C'est la fonction assign qui permet de faire ca.
    Ci dessous le code modifié

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    i<-1
    while (i <=787){assign(paste("y",i,sep="_"),Table[which(Table$C3>=(i-1)*3&Table$C3<(i*3)),])
    i<-i+1}

    Je te conseille aussi de regarder la fonction get qui te permettra de réappeller tes tables.

Discussions similaires

  1. [MySQL] Problème sur boucle WHILE
    Par t671 dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 19/09/2012, 22h37
  2. [XL-2010] Problème sur boucle
    Par xdoreau dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 29/07/2011, 16h04
  3. [MySQL] Problème sur Boucle While après un LEFT JOIN
    Par matperino dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 28/05/2007, 17h43
  4. Problème sur une boucle
    Par Mateache dans le forum ASP
    Réponses: 6
    Dernier message: 31/01/2006, 09h48
  5. [Eval] Problème de boucle for sur des tableaux
    Par battle_benny dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/01/2006, 23h55

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