Just a further suggestion: vec <- c(3,2,5,0,1)
mat <- t(sapply(vec,">=",1:max(vec))) ifelse(mat,1,0) Cheers, Christoph 2013/10/11 arun <smartpink...@yahoo.com>: > Hi, > > In the example you showed: > > m1<- matrix(0,length(vec),max(vec)) > 1*!upper.tri(m1) > > #or > m1[!upper.tri(m1)] <- rep(rep(1,length(vec)),vec) > > #But, in a case like below, perhaps: > vec1<- c(3,4,5) > > m2<- matrix(0,length(vec1),max(vec1)) > indx <- > cbind(rep(seq_along(vec1),vec1),unlist(tapply(vec1,list(vec1),FUN=seq),use.names=FALSE)) > m2[indx]<- 1 > m2 > # [,1] [,2] [,3] [,4] [,5] > #[1,] 1 1 1 0 0 > #[2,] 1 1 1 1 0 > #[3,] 1 1 1 1 1 > > > > > A.K. > > > Hi- > > I'd like to create a matrix of 0's and 1's where the number of > 1's in each row defined by the value indexed in another vector, and > where the (value-1) is back-filled by 0's. > > For example, given the following vector: > vec= c(1,2,3) > > I'd like to produce a matrix with dimensions (length(vec), max(vec)): > > 1,0,0 > 1,1,0 > 1,1,1 > > Thank you! > > ______________________________________________ > 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.