vacio - matrices en r
¿Asignar nombres a las entradas de vectores sin asignar un nombre de variable al vector? (2)
¿Qué hay de usar setNames()
, que parece incluso más claro / claro que su ideal sugerido?
z <- setNames(1:3, c("a", "b", "c"))
# z
# a b c
# 1 2 3
En R, ¿es posible asignar nombres a componentes de un vector sin asignar primero ese vector a un nombre de variable? La forma normal es obviamente:
z <- 1:3
names(z) <- c("a", "b", "c") #normal way
names(1:3) <- c("a", "b", "c") #throws an error
La segunda forma lanza "Error en los nombres (1: 3) <- c (" a "," b "," c "): el destino de la asignación se expande al objeto que no está en el idioma"
Según el doc, la expresión se evalúa como
z <- "names<-"(z,
"[<-"(names(z), 3, "c2"))’.
Así que no me sorprende que no funcione, solo me pregunto si hay una solución.
Idealmente, sería bueno tener algo como:
names(z <- 1:3) <- c("a", "b", "c")
> z
a b c
1 2 3
Simplemente parece un desperdicio de espacio para poner eso en dos líneas diferentes.
Siempre pensé que esto era un poco más limpio, también no necesita un paquete adicional:
z <- c(a=1, b=2, c=3)
# z
# a b c
# 1 2 3