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)
}