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 :

Suppression character(0) dans une liste


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2015
    Messages : 13
    Par défaut Suppression character(0) dans une liste
    Bonjour,
    J'ai besoin d'un petit coup de main. Je me retrouve avec la liste suivante.
    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
     
    > L_new1
    [[1]]
         C2      x1     
    [1,] " 0.35" "I8-I1"
     
    [[2]]
    character(0)
     
    [[3]]
         C1-C2   C1      C1-C2   x1     
    [1,] "-3.56" "-1.91" " 0.44" "I8-I1"
     
    [[4]]
         C1 x1
     
    [[5]]
         C1      x1     
    [1,] " 0.44" "I8-I1"
    [2,] " 0.76" "S8-I1"
     
    [[6]]
    character(0)
     
    [[7]]
         I1-I8   x1  
    [1,] " 0.41" "C1"
    [2,] "-0.41" "C1"
     
    [[8]]
    character(0)
     
    [[9]]
         I8      x1     
    [1,] " 2.25" "C1-C2"
     
    [[10]]
    character(0)
     
    [[11]]
    character(0)
     
    [[12]]
    character(0)
     
    [[13]]
    character(0)
     
    [[14]]
    character(0)
     
    [[15]]
    character(0)
     
    [[16]]
    character(0)
     
    [[17]]
    character(0)
     
    > str(L_new1)
    List of 17
     $ : chr [1, 1:2] " 0.35" "I8-I1"
      ..- attr(*, "dimnames")=List of 2
      .. ..$ : NULL
      .. ..$ : chr [1:2] "C2" "x1"
     $ : chr(0) 
     $ : chr [1, 1:4] "-3.56" "-1.91" " 0.44" "I8-I1"
      ..- attr(*, "dimnames")=List of 2
      .. ..$ : NULL
      .. ..$ : chr [1:4] "C1-C2" "C1" "C1-C2" "x1"
     $ : chr[0 , 1:2] 
      ..- attr(*, "dimnames")=List of 2
      .. ..$ : NULL
      .. ..$ : chr [1:2] "C1" "x1"
     $ : chr [1:2, 1:2] " 0.44" " 0.76" "I8-I1" "S8-I1"
      ..- attr(*, "dimnames")=List of 2
      .. ..$ : NULL
      .. ..$ : chr [1:2] "C1" "x1"
     $ : chr(0) 
     $ : chr [1:2, 1:2] " 0.41" "-0.41" "C1" "C1"
      ..- attr(*, "dimnames")=List of 2
      .. ..$ : NULL
      .. ..$ : chr [1:2] "I1-I8" "x1"
     $ : chr(0) 
     $ : chr [1, 1:2] " 2.25" "C1-C2"
      ..- attr(*, "dimnames")=List of 2
      .. ..$ : NULL
      .. ..$ : chr [1:2] "I8" "x1"
     $ : chr(0) 
     $ : chr(0) 
     $ : chr(0) 
     $ : chr(0) 
     $ : chr(0) 
     $ : chr(0) 
     $ : chr(0) 
     $ : chr(0)
    J'aimerais pouvoir supprimer tous les composants de cette liste qui sont des character(0) et la [[4]] aussi.
    j'ai essayé de faire ceci
    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
    L_new1=unique(L_new1)
    nu=length(L_new1)
     
    L=vector("list", nu)
    for(o in 1:nu){
    if (length(L_new1[[o]])>0){
    L[[o]]=L_new1[[o]]}}
    L
     
    Lbis=vector("list", nu)
    for(o in 1:nu){
    if (length(L[[o]])>0){
    Lbis[[o]]=L[[o]]}}
    Lbis
     
    > Lbis
    [[1]]
         C2      x1     
    [1,] " 0.35" "I8-I1"
     
    [[2]]
    NULL
     
    [[3]]
         C1-C2   C1      C1-C2   x1     
    [1,] "-3.56" "-1.91" " 0.44" "I8-I1"
     
    [[4]]
    NULL
     
    [[5]]
         C1      x1     
    [1,] " 0.44" "I8-I1"
    [2,] " 0.76" "S8-I1"
     
    [[6]]
         I1-I8   x1  
    [1,] " 0.41" "C1"
    [2,] "-0.41" "C1"
     
    [[7]]
         I8      x1     
    [1,] " 2.25" "C1-C2"
    Mais je n'arrive pas a aller plus loin. le but étant de supprimer les NULL et ensuite de mettre les composants de la liste avec les mêmes dimensions pour pouvoir les fusionner.
    Merci à tous ceux qui voudront bien m'aider.

  2. #2
    Membre émérite
    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
    Par défaut
    Pour supprimer les membres de la liste qui ont une longueur nulle, il suffit de les rechercher et de prendre la sous-liste qui a des éléments de longueur différente de zéro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new.list <- old.list[sapply( old.list, function( x) length( x) != 0)]

  3. #3
    Membre averti
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2015
    Messages : 13
    Par défaut
    Merci, ça m'aidera pour la prochaine fois. J'ai réussi à m'en sortir en transformant en data.frame.

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

Discussions similaires

  1. suppression de doublons dans une liste
    Par awalter1 dans le forum Général Python
    Réponses: 4
    Dernier message: 31/07/2012, 15h27
  2. Réponses: 2
    Dernier message: 18/04/2010, 11h15
  3. Suppression d' éléments dans une liste.
    Par conan76 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 02/03/2007, 09h33
  4. Suppression de valeurs dans une liste
    Par Bayard dans le forum Général Python
    Réponses: 2
    Dernier message: 26/04/2006, 10h19
  5. [Lisp] Suppression des parenthèses dans une liste
    Par bourdaillet dans le forum Lisp
    Réponses: 3
    Dernier message: 19/12/2004, 21h02

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