¿Cómo nombrar los elementos de diferentes elementos de lista de R?
Estoy buscando una forma eficiente de nombrar los elementos de diferentes elementos de lista con un vector común de nombres. Supongamos que tengo la siguiente lista:
lista inicial
test <- list(a = c("name1", "name2", "name3"),
b = c(0.1, 0.2, 0.3),
c = c(TRUE, FALSE, TRUE))
que se ve así:
test
$a
[1] "name1" "name2" "name3"
$b
[1] 0.1 0.2 0.3
$c
[1] TRUE FALSE TRUE
Quiero obtener algo como:
$b
name1 name2 name3
0.1 0.2 0.3
$c
name1 name2 name3
TRUE FALSE TRUE
Sé que esto se puede obtener mediante algo como…
names(test[[2]]) <- test$a
names(test[[3]]) <- test$a
test$a <- NULL
pero esto solo es factible si el número de elementos de lista es pequeño. Supongo que esto se puede obtener mediante una línea de código. He intentado cosas como lapply(test, FUN = function(x) names(x)[] <- test$a)
pero esto no da el resultado deseado.
¡Gracias de antemano!
davy.ai
Puede usar la función
lapply
para aplicar la misma operación a cada elemento de la lista. En este caso, puede usarla para asignar los nombres de los elementos de la lista al vector de nombres:Esto le dará el resultado deseado: