Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

upperTriangle

Extract or replace the upper/lower triangular portion of a matrix


Description

Extract or replace the upper/lower triangular portion of a matrix

Usage

upperTriangle(x, diag=FALSE, byrow=FALSE)
upperTriangle(x, diag=FALSE, byrow=FALSE) <- value
lowerTriangle(x, diag=FALSE, byrow=FALSE)
lowerTriangle(x, diag=FALSE, byrow=FALSE) <- value

Arguments

x

Matrix

diag

Logical. If TRUE, include the matrix diagonal.

byrow

Logical. If FALSE, return/replace elements in column-wise order. If TRUE, return/replace elements in row-wise order.

value

Either a single value or a vector of length equal to that of the current upper/lower triangular. Should be of a mode which can be coerced to that of x.

Value

upperTriangle(x) and lowerTriangle(x) return the upper or lower triangle of matrix x, respectively. The assignment forms replace the upper or lower triangular area of the matrix with the provided value(s).

Note

By default, the elements are returned/replaced in R's default column-wise order. Thus

lowerTriangle(x) <- upperTriangle(x)

will not yield a symmetric matrix. Instead use:

lowerTriangle(x) <- upperTriangle(x, byrow=TRUE)

or equivalently:

lowerTriangle(x, byrow=TRUE) <- upperTriangle(x)

Author(s)

Gregory R. Warnes greg@warnes.net

See Also

Examples

x <- matrix( 1:25, nrow=5, ncol=5)
  x
  upperTriangle(x)
  upperTriangle(x, diag=TRUE)
  upperTriangle(x, diag=TRUE, byrow=TRUE)


  lowerTriangle(x)
  lowerTriangle(x, diag=TRUE)
  lowerTriangle(x, diag=TRUE, byrow=TRUE)

  upperTriangle(x) <- NA
  x

  upperTriangle(x, diag=TRUE) <- 1:15
  x

  lowerTriangle(x) <- NA
  x

  lowerTriangle(x, diag=TRUE) <- 1:15
  x

  ## Copy lower triangle into upper triangle to make 
  ## the matrix (diagonally) symmetric
  x <- matrix(LETTERS[1:25], nrow=5, ncol=5, byrow=TRUE)
  x
  lowerTriangle(x) = upperTriangle(x, byrow=TRUE)
  x

gdata

Various R Programming Tools for Data Manipulation

v2.18.0
GPL-2
Authors
Gregory R. Warnes, Ben Bolker, Gregor Gorjanc, Gabor Grothendieck, Ales Korosec, Thomas Lumley, Don MacQueen, Arni Magnusson, Jim Rogers, and others
Initial release
2017-06-05

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.