Tengo una función que necesita para volver a los dos dos tipos diferentes de grupos de vectores. Yo podría hacer esto utilizando una lista que consta de dos matrices, donde los vectores, que quiero volver, corresponden a las columnas de la matriz, pero dado que los vectores tienen diferentes longitudes, me gustaría guardar los vectores en una lista de ellos mismos, por lo que tengo una lista que consta de dos listas.

Me gustaría añadir que los vectores de las sublistas ahora, pero no sé cual de los índices a utilizar.

Por ejemplo si yo quisiera agregar el vector x a la primera sublista en mi lista(l), ¿cómo puedo hacer eso?

l[[1]] <- x

sería sustituir sólo el primer vector en la primera sublista, pero ¿cómo podía acceder al segundo elemento en la sublista el uso de índices?

l[[1]][[1]] <- x reemplazaría el primer elemento de la primera lista de sub, l[[1]][[2]] <- x el segundo, etc.
usted también tiene l[[c(1,2)]] <- x
Gracias por sus respuestas. No quiero reemplazar elementos en la sublista, me gustaría añadir elementos a la sublista. E. g. si tengo un vector c(1,2,3) en l[[1]], quiero añadir otro vector c(4,2,3) a l[[1]], sin la sustitución de alguno de los elementos, de modo que l[[1]] es una lista que consta de dos vectores.

OriginalEl autor eager2learn | 2014-03-19

3 Comentarios

  1. 7

    Para agregar elementos a sublistas, empezar con la lista:

    l <- list(list(1:3), list(5:8))             
    str(l)

    Que se ve así:

    List of 2
     $ :List of 1
      ..$ : int [1:3] 1 2 3
     $ :List of 1
      ..$ : int [1:4] 5 6 7 8

    Y agregar otro vector dentro de una lista:

    l[[1]] <- c(l[[1]], list(100:103))
    str(l)

    Produce:

    List of 2
     $ :List of 2
      ..$ : int [1:3] 1 2 3
      ..$ : int [1:4] 100 101 102 103
     $ :List of 1
      ..$ : int [1:4] 5 6 7 8
    Gracias, esto es exactamente lo que quiero. Una pregunta, sin embargo, ¿cómo puedo tener acceso por ejemplo, el segundo vector en la primera sublista de l?
    l[[1]][[2]] produce [1] 100 101 102 103
    Genial, gracias de nuevo.
    Una manera de mejorar el acceso a los elementos de la lista más fácil es trabajar con el nombre de listas, entonces se puede dar un paso hacia abajo de la jerarquía de la lista así: l$first_level$second_level$third_level$....

    OriginalEl autor BrodieG

  2. 3

    Yo no entiendo qué es exactamente lo que quieres decir. Pero usted puede usar una lista que contiene dos listas como esta:

    a=list();
    a[[1]]=c(1,2,3);
    a[[2]]=c(3,4,5);
    a[['key']]=c(5,6,7)
    a[[1]][1] //the first element in sublist 1
    a[['key']][2] //the second element in sublist 'key'

    si desea almacenar dos vectores, puede ser una matriz es lo que lo

    a[[1]]=cbind(a[[1]], c(2,3,4))
    a[[1]][,1] //the first vector in sublist 1
    Gracias por la respuesta. Lo que me gustaría es esta: en el ejemplo se muestra una lista que consta de dos vectores. Ahora me gustaría que esta lista para ser una sublista de otro «superior» de la lista, vamos a llamarlo l. de modo que l[[1]], que devuelve la lista de una. Y entonces quiero saber cómo agregar más elementos a una mientras está dentro de la lista l.

    OriginalEl autor SetupX

  3. 1

    puede hacerse una lista de los dos vectores :

    l <- vector("list", 2)
    l[[1]] <- 1:3
    l[[1]] <- list(l[[1]],2:4)
    Nota este se rompe si desea agregar otro vector de como acabar con la sublista que contiene una lista, y un vector. Usted necesidad de utilizar c o append con el vector que se anexa envuelto en list.
    sí, pero la pregunta era para agregar un segundo vector …

    OriginalEl autor droopy

Dejar respuesta

Please enter your comment!
Please enter your name here