The b object created in the question is an R named vector, not an R array.
array
An R array is an R vector with a dimension (or dimensions) and possibly a dimnames attribute. It is created like this:
ar <- array(c(0, a), dimnames = list(c("index", "value"))); ar
## index value
## 0.0 1.9
named vector
To create a named vector with specified names rather than creating an array use setNames to overwrite any existing names:
v <- setNames(c(0, a), c("index", "value")); v
## index value
## 0.0 1.9
or use names<- like this:
v <- c(0, a)
names(v) <- c("index", "value")
or as mentioned in the comments already, create b from unname(a) rather than from a to avoid the combined names.
attributes
Note that the attributes of ar are:
attributes(ar)
## List of 2
## $ dim : int 2
## $ dimnames:List of 1
## ..$ : chr [1:2] "index" "value"
and the attributes of v are:
attributes(v)
## $names
## [1] "index" "value"