[Rd] Feature Request: "matrix[1:10,1:10, block=F] <- 1:10"
David Meyer
david.meyer@ci.tuwien.ac.at
Wed, 20 Feb 2002 22:36:41 +0100
"Warnes, Gregory R" wrote:
>
> Hi Guys,
>
> I've again been surprised when something like
>
> > m <- matrix("", nrow=3,ncol=3)
> > index_i <- c(2,1,3)
> > index_j <- c(1,3,2)
> > vals <- c("a","b","c")
> > m[ index_i, index_j ] <- vals
> > m
>
> gives block-wise application of the assignment:
>
> [,1] [,2] [,3]
> [1,] "b" "b" "b"
> [2,] "a" "a" "a"
> [3,] "c" "c" "c"
>
Yes, you need to provide the indices as matrix, like:
m[cbind(index_i,index_j)]
(BTW: Hou do you manage to get index_i <- c(...) properly working? My R
version still treats _ as a replacement for <-)
> when what I wanted was by-element assignment:
>
> [,1] [,2] [,3]
> [1,] "" "" "b"
> [2,] "a" "" ""
> [3,] "" "c" ""
>
> I always end up writing the code:
>
> > for( p in length(index_i) )
> > m[ index_i[p], index_j[p] ] <- vals[p]
>
> to do what I want.
>
> So, I'm thinking about creating a patch to the R source to add an optional
> parameter, say "block", to the "[<-" call for matrixes and data frames.
>
> When "block=T" (the default) the old behaviour is preserved. When "block=F"
> the behavior I want occures so that
>
> > m[ index_i, index_j, block=F ] <- vals
>
> would do what I want.
>
> Comments? Cheers? Jeers? Silence?
>
> -Greg
>
>
>
> LEGAL NOTICE
> Unless expressly stated otherwise, this message is confidential and may be privileged. It is intended for the addressee(s) only. Access to this E-mail by anyone else is unauthorized. If you are not an addressee, any disclosure or copying of the contents of this E-mail or any action taken (or not taken) in reliance on it is unauthorized and may be unlawful. If you are not an addressee, please inform the sender immediately.
> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
> r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
> Send "info", "help", or "[un]subscribe"
> (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch
> _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
--
Mag. David Meyer Wiedner Hauptstrasse 8-10
Vienna University of Technology A-1040 Vienna/AUSTRIA
Department for Tel.: (+431) 58801/10772
Statistics and Probability Theory mail: david.meyer@ci.tuwien.ac.at
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._