當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。