R/adjacency_make.R

Defines functions adjacency_make

Documented in adjacency_make

#' Make adjacency matrix from network
#' @description Plot the competitive network
#' @name adjacency_make
#' @param network igraph object generated by `network_make()`
#' @param isolate_rank ranking of isolates for ordering
#' @return ...

# Function for plotting heatwork for a community with given size

adjacency_make <- function(
                           network,
                           isolate_rank # ranking or order of isolates
) {
  net <- network
  # Transform network into adjacency matrix
  node_number <- length(V(net))
  edges_net <- get.edgelist(net)
  m <- matrix(NA, node_number, node_number)
  edges_m <- matrix(NA, nrow(edges_net), 2)
  edges_m[, 1] <- match(edges_net[, 1], V(net)$name)
  edges_m[, 2] <- match(edges_net[, 2], V(net)$name)

  for (i in 1:nrow(edges_m)) m[edges_m[i, 1], edges_m[i, 2]] <- E(net)$interaction[i]

  # Re-order the matrix by ranking
  order_m <- match(isolate_rank, V(net)$name)
  m <- m[order_m, order_m]

  # Values in the matrix
  diag(m) <- "self"
  m[which(m == "exclusion")] <- "win"
  m[which(is.na(m))] <- "loss"
  m[which(m == "coexistence")] <- "draw"

  return(m)
}
Chang-Yu-Chang/MigrationCommunity documentation built on Aug. 13, 2019, 9:41 p.m.