rmperm.grpd: Randomly Permute the Rows and Columns of an Input Matrix by...

Description Usage Arguments Details Value Examples

View source: R/rmperm.grpd.R

Description

Given an input matrix (or stack thereof), rmperm.grpd performs a (random) simultaneous row/column permutation of the input data BY EACH GROUP. That means permutation does not occur among the different groups.

Usage

1
rmperm.grpd(mat, grp.ns = NULL)

Arguments

mat

a matrix, or stack thereof. For a stack of matrices, it should be either list format or array in which the first dimension indicates the layer.

grp.ns

a vector indicates the number of actors in each group. The default is NULL.

Details

This is the extention of the rmperm for the matrix permtation. If no group was defined in grp.ns, it performs the normal matrix permutation. If groups are defined, it perfom the matrix permutation by each group seperately and then convert it into a single (or stacked) matrix. This function helps for QAP test in which the off-diagonal matrix is set to be NA, for example.

Value

a permuted matrix (or matrices).

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
library(sna)
# single group/single net(normal permutation)
m <- sna::rgraph(4)
rmperm.grpd(m)

# single group/multiplex(normal permutation)
m <- rgraph(4,2)
m[1,,];m[2,,]
res <- rmperm.grpd(m)
res[1,,];res[2,,]

# multi group/single net
m1 <- sna::rgraph(4)
m2 <- sna::rgraph(3)
m3 <- sna::rgraph(3)
spr.mat <- list2mat(list(m1,m2,m3))
spr.mat
rmperm.grpd(spr.mat, grp.ns = c(4,3,3))

# multi group/multiplex
spr.mat2 <- spr.mat
spr.mat2[3,2]<-1;spr.mat2[1,3]<-1
sprmats <- list(spr.mat,spr.mat2)
res <- rmperm.grpd(sprmats, grp.ns = c(nrow(m1),nrow(m2),nrow(m3)))
res[1,,];res[2,,]

huhn1234/vogeltools documentation built on Jan. 17, 2020, 5:21 p.m.