[R] translate vector of numbers to indicies of 0/1 matrix
Gabor Grothendieck
ggrothendieck at gmail.com
Thu Nov 18 01:07:00 CET 2010
On Wed, Nov 17, 2010 at 6:00 PM, Alexander Shenkin <ashenkin at ufl.edu> wrote:
> Hello All,
>
> Searched around, haven't found a decent solution.
>
> I'd like to translate a vector of numbers to a matrix (or to a list of
> vectors) such that the vector values would serve as indicies of the 1's
> in an otherwise-zero-filled matrix (or list of vectors). For example:
>
>> a = c(1,3,3,4)
>
> # perform operation
>
> [,1] [,2] [,3] [,4]
> [1,] 1 0 0 0
> [2,] 0 0 1 0
> [3,] 0 0 1 0
> [4,] 0 0 0 1
Try this:
replace(diag(a)*0, cbind(seq_along(a), a), 1)
--
Statistics & Software Consulting
GKX Group, GKX Associates Inc.
tel: 1-877-GKX-GROUP
email: ggrothendieck at gmail.com
More information about the R-help
mailing list