#'@title Permutations
#'
#'@description Return permutations
#'
#'@param n Number of elements to permute
#'@keywords internal
#'@return Matrix of permuted element ids
permutations = function(n) {
if (n == 1) {
return(matrix(1))
} else {
sp = permutations(n - 1)
p = nrow(sp)
A = matrix(nrow = n * p, ncol = n)
for (i in 1:n) {
A[(i - 1) * p + 1:p, ] = cbind(i, sp + (sp >= i))
}
return(A)
}
}
#'@title Find potential permuted interactions
#'
#'@description Returns permuted interactions
#'
#'@param x character vector of interaction terms
#'@keywords internal
#'@return character vector of potential interaction terms
potential_permuted_factors = function(x) {
numberterms = length(x)
if (numberterms == 1) {
return(x)
}
return(unique(unlist(apply(
matrix(x[permutations(numberterms)], ncol = numberterms),
1,
paste,
collapse = ":"
))))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.