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"