Thanks, Bill.
Sooo... taking the error literally,
temp1 = array(NA, c(3,2,1))
dimnames(temp1)[[3]] = list( "test" )
works, even though
mode( dimnames(temp1)[[3]] )
yields
"character".
Setting all the dimension names simultaneously still feels way better.
--
Sent from my phone. Please excu
It happens because dimnames(originalArray) is NULL and when [[<- extends
NULL it turns it into a list if the size of the new element is not one
but into a vector with the type of new element if the new element's
size is one.
> str( `[[<-`(NULL, 3, value="One") )
chr [1:3] NA NA "One"
> str(
While I generally agree that it is better to design code that sets all of the
dimension names simultaneously, the discrepancy between behavior when the
dimensions are longer than 1 and when they are equal to 1 seems irregular.
Someone went to some lengths to make it possible to set dimnames indi
> On Mar 20, 2017, at 4:46 PM, Douglas Ezra Morrison
> wrote:
>
> Dear R-Help readers,
>
> I am writing to ask about some behavior of base::dimnames() that surprised
> me. If I create an array with one of its dimensions = 1, and then try to
> assign names to that dimension, I get an error unle
Dear R-Help readers,
I am writing to ask about some behavior of base::dimnames() that surprised
me. If I create an array with one of its dimensions = 1, and then try to
assign names to that dimension, I get an error unless I name one of the
other dimensions first. For example:
> temp1 = array(NA,
5 matches
Mail list logo