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


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