From: Henrik Bengtsson <hb_at_stat.berkeley.edu>

Date: Mon, 05 Jul 2010 22:53:59 +0200

R-devel_at_r-project.org mailing list

https://stat.ethz.ch/mailman/listinfo/r-devel Received on Mon 05 Jul 2010 - 20:57:37 GMT

Date: Mon, 05 Jul 2010 22:53:59 +0200

...and, of course, just after sending it off I found out that from R v2.11.0 there is now an arrayInd() in the 'base' package doing exactly the same thing. See help(arrayInd).

/Henrik

On Mon, Jul 5, 2010 at 10:49 PM, hb <hb_at_stat.berkeley.edu> wrote:

> For what it's worth, see arrayIndex() in R.utils, e.g.

*>
**> # Single index
**> print(arrayIndex(21, dim=c(4,3,3)))
**>
**> # Multiple indices
**> print(arrayIndex(20:23, dim=c(4,3,3)))
**>
**> # Whole array
**> x <- array(1:30, dim=c(5,6))
**> print(arrayIndex(1:length(x), dim=dim(x)))
**>
**> # Find (row,column) of maximum value
**> m <- diag(4-abs(-4:4))
**> print(arrayIndex(which.max(m), dim=dim(m)))
**>
**> /Henrik
**>
**> On Mon, Jul 5, 2010 at 8:27 PM, Patrick Burns <pburns_at_pburns.seanet.com> wrote:
**>> On 05/07/2010 10:56, Martin Maechler wrote:
**>>>>>>>>
**>>>>>>>> "PatB" == Patrick Burns<pburns_at_pburns.seanet.com>
**>>>>>>>> on Sun, 04 Jul 2010 09:43:44 +0100 writes:
**>>>
**>>> PatB> Is there a reason that 'which.min' and
**>>> PatB> 'which.max' don't have an 'arr.ind'
**>>> PatB> argument?
**>>>
**>>> well, help(which.min) tells you that they really were aimed at
**>>> doing their job *fast* for vectors.
**>>>
**>>> Of course you are right and a generalization to arrays might be
**>>> convenient at times.
**>>>
**>>> PatB> The context in which I wanted that was
**>>> PatB> a grid search optimization, which seems
**>>> PatB> like it would be reasonably common to me.
**>>>
**>>> well, as the author of these two functions, I can only say
**>>>
**>>> "patches are welcome!"
**>>>
**>>> and I think should be pretty simple, right ?
**>>> You just have to do very simple remapping of the 1d index 'i' back
**>>> to the array index, i.e., the same operation
**>>> you need to transform seconds into days:hours:minutes:seconds
**>>> {{and yes, we old-timers may recall that APL had an operator (I
**>>> think "T-bar") to do that ...}
**>>
**>> I think the exercise is just to copy the definition of
**>> 'which' and add four characters.
**>>
**>> If the order of the if condition were reversed, then
**>> possibly the slight reduction in speed of 'which.min'
**>> and 'which.max' would be more than made up for in the
**>> slight increase in speed of 'which'.
**>>
**>> Pat
**>>
**>>>
**>>> Martin Maechler, ETH Zurich
**>>>
**>>>
**>>> PatB> --
**>>> PatB> Patrick Burns
**>>> PatB> pburns_at_pburns.seanet.com
**>>> PatB> http://www.burns-stat.com
**>>> PatB> (home of 'Some hints for the R beginner'
**>>> PatB> and 'The R Inferno')
**>>>
**>>
**>> --
**>> Patrick Burns
**>> pburns_at_pburns.seanet.com
**>> http://www.burns-stat.com
**>> (home of 'Some hints for the R beginner'
**>> and 'The R Inferno')
**>>
**>> ______________________________________________
**>> R-devel_at_r-project.org mailing list
**>> https://stat.ethz.ch/mailman/listinfo/r-devel
**>>
**>
**>
*

R-devel_at_r-project.org mailing list

https://stat.ethz.ch/mailman/listinfo/r-devel Received on Mon 05 Jul 2010 - 20:57:37 GMT

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.2.0, at Tue 06 Jul 2010 - 10:40:11 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel.
Please read the posting
guide before posting to the list.
*