R/aaa.R

#' Weaves two vectors together using alternating indecies
#'
#' @param a Vector
#' @param b Vector
#'
#' @export
#' @keywords internal
#' @return A vector
#' @examples
#' weave(letters, LETTERS)
weave <- function(a, b) {
  x <- vector(class(a), length(c(a, b)))
  x[c(TRUE, FALSE)] <- a
  x[c(FALSE, TRUE)] <- b
  x
}

#' Weaves two vectors together using alternating indecies
#'
#' @param a matrix
#' @param b matrix
#'
#' @export
#'
#' @return a matrix
#' @keywords internal
#' @examples
#' gg <- matrix(rep(1, 10), nrow = 5)
#' hh <- matrix(rep(2, 10), nrow = 5)
#' weave_matrix(a = gg, b = hh)
weave_matrix <- function(a, b) {
  out <- matrix(nrow = nrow(a) + nrow(b), ncol = ncol(a))
  out[c(TRUE, FALSE), ] <- a
  out[c(FALSE, TRUE), ] <- b
  out
}

#' Checks that all values in a vector are the same
#'
#' @param x vector
#' @return a matrix
#'
#' @export
#'
#' @keywords internal
#' @examples
#' all_same(c(1, 1, 1))
all_same <- function(x) {
  length(unique(x)) == 1
}
EmilHvitfeldt/cell documentation built on May 5, 2019, 7:03 p.m.