Description Usage Arguments Details Value Author(s) See Also Examples
Bind comformable arrays
1 2 3 |
arr1 |
first array |
arr2 |
second array |
d |
dimension along which arr1 and arr2 are joined, or, if the |
facename |
Name for the new array dimension |
abind
binds two conformable arrays along a dimension.
abind.rdc
is a version used in the RDC.
dim( arr1 ) and dim( arr2 ) must be equal except in the dth dimension. If the length of dim( arr2 ) is 1 less than that of dim( arr1 ), then 'arr2' is treated as if it had dropped the dth dimension with size 1.
The returned value, ret, is an array with dimension dim(arr1) except for the dth dimension where dim(ret)[d] == dim(arr1)[d] + dim(arr2)[d].
If length(dim(arr2)) == length(dim(arr1)) - 1, then arr2 is treated as if it dropped a dimension of size 1 in the dth dimension. 'facename' is used as the name of the dimnames list for this dimension.
Georges Monette
aperm
, to permute arrays
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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | ##---- Should be DIRECTLY executable !! ----
##-- ==> Define data, use random,
##-- or do help(data=index) for the standard data sets.
## The function is currently defined as
function (arr1, arr2, d, facename = "")
{
d1 <- dim(arr1)
n1 <- length(d1)
dn1 <- dimnames(arr1)
d2 <- dim(arr2)
n2 <- length(d2)
dn2 <- dimnames(arr2)
arenull <- is.null(dn1) & is.null(dn2)
if (is.null(dn1)) {
dn1 <- lapply(as.list(d1), function(x) seq(1, x))
dimnames(arr1) <- dn1
}
if (n1 != n2) {
d2 <- d1
d2[d] <- 1
dn2 <- dn1
dn2[[d]] <- facename
dimnames(arr2) <- NULL
dim(arr2) <- d2
dimnames(arr2) <- dn2
n2 <- n1
}
if (is.null(dn2)) {
dn2 <- lapply(as.list(d2), function(x) seq(1, x))
dimnames(arr2) <- dn2
}
perm <- 1:n1
perm[c(d, n1)] <- c(n1, d)
arr.p1 <- aperm(arr1, perm)
arr.p2 <- aperm(arr2, perm)
dret <- d1[perm]
dret[n1] <- dret[n1] + d2[d]
dnret <- dn1
dnret[[d]] <- c(dnret[[d]], dn2[[d]])
ret <- c(arr.p1, arr.p2)
dim(ret) <- dret
ret <- aperm(ret, perm)
dimnames(ret) <- dnret
ret
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.