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


R sweep 扫除数组摘要


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

说明

返回通过清除汇总统计量从输入数组获得的数组。

用法

sweep(x, MARGIN, STATS, FUN = "-", check.margin = TRUE, ...)

参数

x

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

MARGIN

给出对应于 STATSx 范围的索引向量。其中x已命名为dimnames,它可以是选择维度名称的字符向量。

STATS

要清除的汇总统计数据。

FUN

用于执行扫描的函数。

check.margin

合乎逻辑的。如果 TRUE (默认),如果 STATS 的长度或尺寸与 x 的指定尺寸不匹配,则发出警告。当您知道尺寸匹配时,设置为 FALSE 可获得较小的速度增益。

...

FUN 的可选参数。

细节

FUN 通过调用 match.fun 找到。与默认情况一样,如果加引号或反引号,则可以提供二元运算符。

FUN 应该是两个参数的函数:它将使用参数 xapermSTATS 生成的相同维度的数组进行调用。

如果 STATS 是数组,则 STATSMARGINx 之间的一致性检查比它是向量时更严格。在向量情况下,某些类型的回收是允许的,恕不另行通知。如果 STATS 是向量并且您希望在发生任何回收时收到警告,请使用 sweep(x, MARGIN, as.array(STATS))

x 具有相同形状的数组,但清除了摘要统计信息。

例子

require(stats) # for median
med.att <- apply(attitude, 2, median)
sweep(data.matrix(attitude), 2, med.att)  # subtract the column medians

## More sweeping:
A <- array(1:24, dim = 4:2)

## no warnings in normal use
sweep(A, 1, 5)
(A.min <- apply(A, 1, min))  # == 1:4
sweep(A, 1, A.min)
sweep(A, 1:2, apply(A, 1:2, median))

## warnings when mismatch
sweep(A, 1, 1:3)  # STATS does not recycle
sweep(A, 1, 6:1)  # STATS is longer

## exact recycling:
sweep(A, 1, 1:2)  # no warning
sweep(A, 1, as.array(1:2))  # warning

## Using named dimnames

dimnames(A) <- list(fee=1:4, fie=1:3, fum=1:2)

mn_fum_fie <- apply(A, c("fum", "fie"), mean)
mn_fum_fie
sweep(A, c("fum", "fie"), mn_fum_fie)

参考

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

也可以看看

apply 曾经是 sweep 的基础; scale 用于居中和缩放。

相关用法


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