`"snp.matrix"`

or `"X.snp.matrix"`

.```
snp.cbind(...)
snp.rbind(...)
```

...

Objects of class

`"snp.matrix"`

or `"X.snp.matrix"`

.- A new matrix, of the same type as the input matrices.

`cbind`

and `rbind`

. These are constrained to
work by recursive calls to the generic functions `cbind2`

and `rbind2`

which take just two arguments. This
is somewhat inefficient in both time and memory use when binding more
than two objects, so the functions `snp.cbind`

and
`snp.rbind`

, which take multiple arguments, are also supplied.
When matrices are bound together by column, row names must be identical,
column names must not be duplicated and, for objects of class
`X.snp.matrix`

the contents of the `Female`

slot much match.
When matrices are bound by row,
column names must be identical. and duplications of row names generate
warnings.`cbind`

, `rbind`

data(testdata) # subsetting ( Autosomes[c(1:9,11:19,21:29),] ) is quicker. this is just for illustrating # rbind and cbind first <- Autosomes[1:9,] second <- Autosomes[11:19,] third <- Autosomes[21:29,] result1 <- rbind(first, second, third) result2 <- snp.rbind(first, second, third) all.equal(result1, result2) result3 <- Autosomes[c(1:9,11:19,21:29),] all.equal(result1, result3) first <- Autosomes[,1:9] second <- Autosomes[,11:19] third <- Autosomes[,21:29] result1 <- cbind(first, second, third) result2 <- snp.cbind(first, second, third) all.equal(result1, result2) result3 <- Autosomes[,c(1:9,11:19,21:29)] all.equal(result1, result3) first <- Xchromosome[1:9,] second <- Xchromosome[11:19,] third <- Xchromosome[21:29,] result1 <- rbind(first, second, third) result2 <- snp.rbind(first, second, third) all.equal(result1, result2) result3 <- Xchromosome[c(1:9,11:19,21:29),] all.equal(result1, result3) first <- Xchromosome[,1:9] second <- Xchromosome[,11:19] third <- Xchromosome[,21:29] result1 <- cbind(first, second, third) result2 <- snp.cbind(first, second, third) all.equal(result1, result2) result3 <- Xchromosome[,c(1:9,11:19,21:29)] all.equal(result1, result3)