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


R rowsum 根据分组变量给出矩阵或 DataFrame 的列和


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

说明

对于分组变量的每个级别,计算类似数字矩阵的对象的各行的列总和。 rowsum 是通用的,具有用于数据帧的方法以及用于向量和矩阵的默认方法。

用法

rowsum(x, group, reorder = TRUE, ...)

## S3 method for class 'data.frame'
rowsum(x, group, reorder = TRUE, na.rm = FALSE, ...)

## Default S3 method:
rowsum(x, group, reorder = TRUE, na.rm = FALSE, ...)

参数

x

数值数据的矩阵、 DataFrame 或向量。允许缺失值。数值向量将被视为列向量。

group

给出分组的向量或因子,x 的每行一个元素。缺失值将被视为另一组,并给出警告。

reorder

如果 TRUE ,则结果将按照 sort(unique(group)) 的顺序排列,如果 FALSE ,则结果将按照遇到组的顺序排列。

na.rm

逻辑( TRUEFALSE )。是否应该丢弃 NA (包括 NaN )值?

...

传入或传出方法的其他参数

细节

默认情况下是对行重新排序以符合 tapply,如下例所示。重新排序不应显著增加时间,除非 group 有很多不同的值并且 x 的列很少。

原始函数由 Terry Therneau 编写,但这是使用散列的新实现,对于大型矩阵来说速度更快。

要对矩阵的所有行(即单个 group )求和,请使用 colSums ,这应该更快。

对于整数参数,形成总和时的上溢/下溢会导致 NA

包含总和的矩阵或 DataFrame 。 group 的每个唯一值将对应一行。

例子

require(stats)

x <- matrix(runif(100), ncol = 5)
group <- sample(1:8, 20, TRUE)
(xsum <- rowsum(x, group))
## Slower versions
tapply(x, list(group[row(x)], col(x)), sum)
t(sapply(split(as.data.frame(x), group), colSums))
aggregate(x, list(group), sum)[-1]

也可以看看

tapply , aggregate , rowSums

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Give Column Sums of a Matrix or Data Frame, Based on a Grouping Variable。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。