[R] Efficent way to create an nxn upper triangular matrix of one's

Sundar Dorai-Raj sdorairaj at gmail.com
Wed Feb 11 22:32:52 CET 2009


Try

x <- diag(n)
x[upper.tri(x)] <- 1

On Wed, Feb 11, 2009 at 1:22 PM, Dale Steele <dale.w.steele at gmail.com> wrote:
> The code below create an nxn upper triangular matrix of one's.  I'm
> stuck on finding a more efficient vectorized way - Thanks.  --Dale
>
> n <- 9
> data <- matrix(data=NA, nrow=n, ncol=n)
> data
> for (i in 1:n) {
>    data[,i] <- c(rep(1,i), rep(0,n-i))
> }
> data
>
> ______________________________________________
> R-help at 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.
>




More information about the R-help mailing list