Learn R Programming

HelpersMG (version 5.1)

symmetricize: Make a matrix symmetric

Description

This function was part of the package ENA. This package is no more available and it cannot be installed from archive because some dependencies are no more available.

Usage

symmetricize(
  matrix,
  method = c("max", "min", "avg", "ld", "ud"),
  adjacencyList = FALSE
)

Arguments

matrix

The matrix to make symmatric

method

The method to use to make the matrix symmetric. Default is to take the maximum.

  • "max" For each position, \(m_{i,j}\), use the maxiumum of \((m_{i,j}, m_{j,i})\)

  • "min" For each position, \(m_{i,j}\), use the minimum of \((m_{i,j}, m_{j,i})\)

  • "avg" For each position, \(m_{i,j}\), use the mean: \((m_{i,j} + m_{j,i})/2\)

  • "ld" Copy the lower triangular portion of the matrix to the upper triangular portion.

  • "ud" Copy the upper triangular portion of the matrix to the lower triangular portion.

adjacencyList

Logical. If false, returns the symmetric matrix (the same format as the input). If true, returns an adjacency list representing the upper triangular portion of the adjacency matrix with addressing based on the row.names of the matrix provided.

Value

The symmetric matrix

Details

Make the matrix symmetric by making all "mirrored" positions consistent. A variety of methods are provided to make the matrix symmetrical.

Examples

Run this code
# NOT RUN {
#Create a sample 3x3 matrix
mat <- matrix(1:9, ncol=3)

#Copy the upper diagonal portion to the lower
symmetricize(mat, "ud")

#Take the average of each symmetric location
symmetricize(mat, "avg")

# }

Run the code above in your browser using DataLab