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 :

Stocker résultats dans une liste


Sujet :

R

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2020
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Stocker résultats dans une liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    name<- c("Bordeaux","[0-9]+e")
    z <- list()
    for (i in name) { Y <- IXI_STATIONS["code"][,1][grep(i,IXI_STATIONS["name"][,1])]
    print(Y)
      z [1:2]<-Y
    }
    lorsque j'exécute ma boucle ma liste stock pas tous les éléments de mon Y.

    Est-ce quelqu'un saurait pourquoi?

    Merci,

    Olivier

  2. #2
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Bonjour.
    Ce n'est pas forcément facile de comprendre ce que tu cherches à faire avec peu d'explications et un exemple qu'on ne peut pas reproduire.
    Mais je dirais qu'avec Z[1:2] <- Y tu écris toujours aux mêmes emplacements dans ta liste Z à chaque itération de la boucle.
    Bon courage.
    Olivier

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2020
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Bonjour, j'ai ajouté des précisions:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    name<- c("Bordeaux","[0-9]+e")
    z <- list()
    for (i in name) { Y <- IXI_STATIONS["code"][,1][grep(i,IXI_STATIONS["name"][,1])]
    print(Y)
    z [1:2]<-Y
    }

    Le résultat de mon «print(y) est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [1] 7030 6141
    [1] 6730
    lorsque j'exécute ma boucle ma liste stock pas tous les éléments de mon Y.
    Je voudrais que le premier élément soit:[1] 7030 6141 et le second:[1] 6730
    Par contre quand j'exécute la boucle, seulement 6730 est stocké dans les deux éléments de la liste.


    Est-ce quelqu'un saurait pourquoi?

    Merci,

    Olivier

  4. #4
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Bonjour Olivier.
    Le plus simple pour obtenir ton résultat sous forme de liste est encore de remplacer la boucle par un lapply.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    name<- c("Bordeaux","[0-9]+e")
    z <- lapply (name, function(i) {IXI_STATIONS["code"][,1][grep(i,IXI_STATIONS["name"][,1])]})
    Pas forcément plus simple à débugger (mais on peut toujours créer une fonction comme objet séparé et juste l'appeler comme 2e argument de lapply) mais résultat garanti sous forme de liste et code plus court.
    Bon courage.
    Olivier

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/08/2016, 19h41
  2. Réponses: 9
    Dernier message: 11/01/2016, 13h30
  3. Requête SQL et résultat dans une liste déroulante
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/04/2014, 14h02
  4. [Requete] Mettre le résultat dans une liste modifiable
    Par Rizel dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 21/05/2007, 13h40
  5. Réponses: 6
    Dernier message: 27/09/2005, 16h19

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