vectores tamaño seleccionar repeticiones listas data creacion contar concatenar columnas r

tamaño - Añadir vector nombrado a una lista



seleccionar columnas en r (4)

Esto es terriblemente básico pero parece que no puedo entenderlo

Supongamos que tengo una lista de entradas variables:

lst <- list(a=1:4, b=rep(''k'', 5), c=3)

Si quiero agregar un vector a este con un nombre específico, debería poder hacerlo de la siguiente manera:

c(f=1:5, lst)

Pero en lugar de crear una entrada llamada ''f'' que contiene 1 2 3 4 5, crea cinco entradas (f1 - f5) que contienen uno de los números cada una.

¿Cómo suprimo este comportamiento?

Sé que puedo usar

lst$f <- 1:5

pero me gustaría añadir la lista dentro de una llamada de función ...


Aquí hay una función simple para agregar un elemento (o más) a una lista:

lappend <- function (lst, ...){ lst <- c(lst, list(...)) return(lst) } > a <- list() > a list() > lappend(a,c(1,2,3)) [[1]] [1] 1 2 3 > lappend(a, c(4,5,6), c(7,8,9)) [[1]] [1] 4 5 6 [[2]] [1] 7 8 9

¡¡Espero que ayude!! Adiós.


Convierta f en una lista de uno, y luego concatene:

c(list(f=1:5), lst)


La solución más versátil es con anexar:

append(lst, list(f=1:5), after=0)# after - position to append


Usted puede simplemente hacer:

lst[[key]] <- any_object

(note los corchetes dobles [[]] )

any_object puede, por supuesto, ser un vector.

Este método tiene la ventaja de ser utilizable incluso si el valor exacto de la key se almacena en una variable y no lo sabe de antemano, o si la variable que se está iterando en un bucle for, por ejemplo:

count <- list() for (k in c("boys","girls","other")) { count[[k]] <- sum(data == k) }