[R] assigning dimnames to arrays

Douglas Ezra Morrison dmorrison01 at ucla.edu
Tue Mar 21 00:46:44 CET 2017


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, c(3,2,1))
> dimnames(temp1)[[3]] = "test"

results in the error: "Error in dimnames(temp1)[[3]] = "test" : 'dimnames'
must be a list"

However, the following works:

> temp1 = array(NA, c(3,2,1))
> dimnames(temp1)[[2]] = c("a","b")
> dimnames(temp1)[[3]] = "test"

I found an explanation of what is happening on stackoverflow (
http://stackoverflow.com/questions/12578461/r-dimnames-of-matrix-strange-behaviour/42915723),
however, I didn't see any explanation of why this behavior is
intended/desirable. Moreover, it recently caused a problem in a place where
I couldn't easily work around it, without submitting edits to or forking
someone else's R package. Is there any possibility that this behavior is a
bug that could be fixed, or is it something I should learn to live with?

Thanks,
Doug

-- 

Typed from a mobile device - apologies for typos and brevity.

	[[alternative HTML version deleted]]



More information about the R-help mailing list