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 :

Definition d´un objet dans une boucle


Sujet :

R

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Definition d´un objet dans une boucle
    Bonjour,
    Je suis débutant en R, et j'aimerais définir plusieurs objets dans une boucle, dont le nom incluerais le "i" à chaque itération, comme ceci (c'est juste un exemple bateau) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (i in 1:5)
    {
         objet_i <- f(i)  (où f une fonction quelconque)
    }
    J´aimerais obtenir comme sortie:
    objet_1 = ...
    objet_2 = ...
    etc.

    Je ne sais pas comment faire..

    Merci !

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 34
    Points : 44
    Points
    44
    Par défaut
    Je peux te proposer cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    f=function(x){
     
    	return(2*x+3)
     
    }
     
    for(i in 1:5){
     
    	cat("objet_",i," <- ", f(i), "\n")
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    objet_ 1  <-  5 
    objet_ 2  <-  7 
    objet_ 3  <-  9 
    objet_ 4  <-  11 
    objet_ 5  <-  13
    Je sais pas si ça te convient

    Par contre, mettre le 'i' concrètement dans le nom de ton objet, c'est impossible me semble-t-il...

    Il faudrait mieux utiliser un vecteur alors.

    Max ^_^

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci pour ta réponse, mais le problème, c'est que la fonction "cat" ne convient pas pour mon cas.

    En fait, j'aimerais créer plusieurs tables à partir d'une table A.
    Ma table A est la suivante (simplifiée) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ID  Valeur  
    1    456
    1    654
    1    789
    2    498
    2    231
    3    784
    3    147
    3    963
    etc.
    J´aimerais créer une table "table_1" avec toutes les lignes ayant l'ID "1", la table "table_2" avec toutes les lignes ayant l'ID "2", et ainsi de suite.

    J'ai essayé un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for (i in 1:n)
    {
          table_i <- subset(A, ID == i)
    }
    mais ca ne marche pas...

    Si tu as une idée, je suis preneur !

    Merci.

  4. #4
    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
    Hello,

    Citation Envoyé par FavreMaxime Voir le message
    par contre mettre le 'i' concrètement dans le nom de ton objet, c'est impossible me semble t'il...
    Tout est possible ^^

    ?assign devrait résoudre le problème.


    Edit:

    Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
          table_i <- subset(A, ID == i)
    qui ne marchait pas devient:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    assign(x=paste("table_",i,sep=""),value=subset(A, ID == i))

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci pour "assign", ca marche pour mon probleme!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création d'objets dans une boucle
    Par Ade14 dans le forum Débuter
    Réponses: 21
    Dernier message: 28/08/2014, 09h50
  2. Réutilisation d'un objet dans une boucle
    Par Stepsbysteps dans le forum R
    Réponses: 2
    Dernier message: 14/03/2013, 16h30
  3. changer nom de l'objet dans une boucle
    Par alimhassa dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/05/2009, 21h54
  4. Création d'objets dans une boucle for
    Par urban_p dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 02/06/2008, 10h34
  5. [FLASH MX] Créer un objet dans une boucle
    Par alexfrere dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 30/04/2006, 01h35

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