Robin Hankin wrote:
Hi.

I have been pondering array indexing via matrices.

 > a <- array(1:27,rep(3,3))
 >  index <- matrix(c(1,1,1,1,2,3),2,3,byrow=TRUE)
 > a[index]
[1]  1 22


as expected and documented.  But what was the thinking
behind the decision to access the array by rows rather
than columns?

The 'index' matrix is ordered as [1,1,1,2,1,3] and so
the extraction is  a[index[c(1,3,5)]] for the first element
and a[index[c(2,3,6)]] for the second.
If the indexing was by columns then we would have

<fantasy>
 > a <- array(1:27,rep(3,3))
 >  index <- matrix(c(1,1,1,1,2,3),2,3)
 > a[index]
[1]  1 22
</fantasy>

Thus the extraction is a[index[1:3]] and a[index[4:6]].

This seems to be a sensible way of going about array indexing.
For example, even *defining* the 'index'
matrix is simpler.

So, what is the thinking behind the  behaviour as implemented?

I'm asking because I want to understand the thinking behind the
decision.


From my point of view common thinking with matrices and data.frames is that one row corresponds to one observation (that should be extracted).

Uwe Ligges


rksh


______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to