6 votes

Ajouter des éléments à une liste en R (dans des listes imbriquées)

J'ai une liste imbriquée l3 as :

l1<- as.list(c(1,2,3,4,5))
l1

l2<- as.list(c(6,7,8,9,10))
l2

l3<- list(l1,l2)
l3

l3 se présente comme :

> l3
[[1]]
[[1]][[1]]
[1] 1

[[1]][[2]]
[1] 2

[[1]][[3]]
[1] 3

[[1]][[4]]
[1] 4

[[1]][[5]]
[1] 5

[[2]]
[[2]][[1]]
[1] 6

[[2]][[2]]
[1] 7

[[2]][[3]]
[1] 8

[[2]][[4]]
[1] 9

[[2]][[5]]
[1] 10

Je dois ajouter une troisième liste l4 à l3 de telle sorte que l3 devienne :

[[1]][[1]]
    [1] 1

to

[[2]][[5]]
    [1] 10

[[3]][[1]]
    [1] 30

[[3]][[2]]
    [1] 32

[[3]][[3]]
    [1] 33

[[3]][[4]]
    [1] 34

[[3]][[5]]
    [1] 35

où se trouvait l4 :

l4<- as.list(c(31,32,33,34,35))

comment y parvenir ? J'ai essayé (c) , list Il a même explicitement mis les arguments et a obtenu un out of bounds error . Que dois-je faire pour y parvenir ?

21voto

Sven Hohenstein Points 36055

Il fonctionne avec append y list :

append(l3, list(l4))

Le résultat :

> str(append(l3, list(l4)))
List of 3
 $ :List of 5
  ..$ : num 1
  ..$ : num 2
  ..$ : num 3
  ..$ : num 4
  ..$ : num 5
 $ :List of 5
  ..$ : num 6
  ..$ : num 7
  ..$ : num 8
  ..$ : num 9
  ..$ : num 10
 $ :List of 5
  ..$ : num 31
  ..$ : num 32
  ..$ : num 33
  ..$ : num 34
  ..$ : num 35

11voto

agstudy Points 55104

Je ne sais pas ce que vous avez essayé avec c mais ça marche

c(l3,list(l4))

PS : append est une enveloppe de c pour insérer dans un index spécifique, (voir après l'argument )

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X