Alexander -
If I understand your problem, I think this
function will make the matrix you want:
makeyourmatrix = function(vec){
n = length(vec)
mat = matrix(0,n,n)
mat[cbind(1:n,vec)] = 1
mat
}
makeyourmatrix(c(1,3,3,4))
[,1] [,2] [,3] [,4]
[1,] 1 0 0 0
[2,] 0 0 1 0
[3,] 0 0 1 0
[4,] 0 0 0 1
- Phil Spector
Statistical Computing Facility
Department of Statistics
UC Berkeley
spec...@stat.berkeley.edu
On Wed, 17 Nov 2010, Alexander Shenkin 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
Any help greatly appreciated!
thanks,
allie
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.