当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R asplit 按边距分割数组/矩阵


R语言 asplit 位于 base 包(package)。

说明

按边距分割数组或矩阵。

用法

asplit(x, MARGIN)

参数

x

一个数组,包括一个矩阵。

MARGIN

给出分割边距的向量。例如,对于矩阵1 表示行,2 表示列,c(1, 2) 表示行和列。其中x已命名为dimnames,它可以是选择维度名称的字符向量。

细节

自从R4.1.0,还可以使用以下方式获得分割(效率较低)apply(x, MARGIN, identity, simplify = FALSE)。分割的值也可以通过以下方式获得(效率较低)split(x, slice.index(x, MARGIN)).

具有维度 的 “list array”,每个元素是维度为 的数组,并且保留为可用的暗名称,其中 分别是 x 包含和不包含在 MARGIN 中的维度。

例子

## A 3-dimensional array of dimension 2 x 3 x 4:
d <- 2 : 4
x <- array(seq_len(prod(d)), d)
x
## Splitting by margin 2 gives a 1-d list array of length 3
## consisting of 2 x 4 arrays:
asplit(x, 2)
## Splitting by margins 1 and 2 gives a 2 x 3 list array
## consisting of 1-d arrays of length 4:
asplit(x, c(1, 2))
## Compare to
split(x, slice.index(x, c(1, 2)))

## A 2 x 3 matrix:
(x <- matrix(1 : 6, 2, 3))
## To split x by its rows, one can use
asplit(x, 1)
## or less efficiently
split(x, slice.index(x, 1))
split(x, row(x))

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Split Array/Matrix By Its Margins。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。