manipulate lists empty create r list append bind names

lists - anexando a una lista con nombres dinámicos, R



r add element to vector (2)

Tengo una lista en R:

a <- list(n1 = "hi", n2 = "hello")

Me gustaría añadir a esta lista nombrada pero los nombres deben ser dinámicos. Es decir, se crean a partir de una cadena (por ejemplo: paste("another","name",sep="_")

Intenté hacer esto que no funciona:

c(a, parse(text="paste(/"another/",/"name/",sep=/"_/")=/"hola/"")

¿Cuál es la forma correcta de hacer esto? El objetivo final es simplemente agregar a esta lista y elegir dinámicamente mis nombres.


Puedes usar setNames para establecer los nombres sobre la marcha:

a <- list(n1 = "hi", n2 = "hello") c(a,setNames(list("hola"),paste("another","name",sep="_")))

Resultado:

$n1 [1] "hi" $n2 [1] "hello" $another_name [1] "hola"


Usted podría simplemente utilizar la indexación con dobles corchetes. Cualquiera de los siguientes métodos debería funcionar.

a <- list(n1 = "hi", n2 = "hello") val <- "another name" a[[val]] <- "hola" a #$n1 #[1] "hi" # #$n2 #[1] "hello" # #$`another name` #[1] "hola" a[[paste("blah", "ok", sep = "_")]] <- "hey" a #$n1 #[1] "hi" # #$n2 #[1] "hello" # #$`another name` #[1] "hola" # #$blah_ok #[1] "hey"