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.