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


R colSums-methods 形成行和列的總和及平均值


R語言 colSums-methods 位於 Matrix 包(package)。

說明

形成對象的行和列總和以及平均值,對於 sparseMatrix,結果也可以選擇稀疏(sparseVector)。當結果是 numeric 向量時,行或列名稱分別保留為 base 矩陣和 colSums 方法。

用法

 colSums(x, na.rm = FALSE, dims = 1L, ...)
 rowSums(x, na.rm = FALSE, dims = 1L, ...)
colMeans(x, na.rm = FALSE, dims = 1L, ...)
rowMeans(x, na.rm = FALSE, dims = 1L, ...)

## S4 method for signature 'CsparseMatrix'
 colSums(x, na.rm = FALSE, dims = 1L,
         sparseResult = FALSE, ...)
## S4 method for signature 'CsparseMatrix'
 rowSums(x, na.rm = FALSE, dims = 1L,
         sparseResult = FALSE, ...)
## S4 method for signature 'CsparseMatrix'
colMeans(x, na.rm = FALSE, dims = 1L,
         sparseResult = FALSE, ...)
## S4 method for signature 'CsparseMatrix'
rowMeans(x, na.rm = FALSE, dims = 1L,
         sparseResult = FALSE, ...)

參數

x

一個 Matrix,即繼承自 Matrix

na.rm

合乎邏輯的。計算中是否應該省略缺失值(包括 NaN )?

dims

Matrix 方法完全忽略。

...

可能還有更多參數,用於方法 <-> 通用兼容性。

sparseResult

邏輯指示結果是否應該稀疏,即從類 sparseVector 繼承。僅當 x 繼承自 sparseMatrix 類時適用。

默認情況下,如果 sparseResultFALSE,則返回數值向量。否則,返回 sparseVector

僅當生成的 vnumeric 時,才保留 dimnames(x) (作為 names(v) ),因為 sparseVector 沒有名稱。

例子

(M <- bdiag(Diagonal(2), matrix(1:3, 3,4), diag(3:2))) # 7 x 8
colSums(M)
d <- Diagonal(10, c(0,0,10,0,2,rep(0,5)))
MM <- kronecker(d, M)
dim(MM) # 70 80
length(MM@x) # 160, but many are '0' ; drop those:
MM <- drop0(MM)
length(MM@x) # 32
  cm <- colSums(MM)
(scm <- colSums(MM, sparseResult = TRUE))
stopifnot(is(scm, "sparseVector"),
          identical(cm, as.numeric(scm)))
rowSums (MM, sparseResult = TRUE) # 14 of 70 are not zero
colMeans(MM, sparseResult = TRUE) # 16 of 80 are not zero
## Since we have no 'NA's, these two are equivalent :
stopifnot(identical(rowMeans(MM, sparseResult = TRUE),
                    rowMeans(MM, sparseResult = TRUE, na.rm = TRUE)),
	  rowMeans(Diagonal(16)) == 1/16,
	  colSums(Diagonal(7)) == 1)

## dimnames(x) -->  names( <value> ) :
dimnames(M) <- list(paste0("r", 1:7), paste0("V",1:8))
M
colSums(M)
rowMeans(M)
## Assertions :
stopifnot(exprs = {
    all.equal(colSums(M),
              structure(c(1,1,6,6,6,6,3,2), names = colnames(M)))
    all.equal(rowMeans(M),
              structure(c(1,1,4,8,12,3,2)/8, names = paste0("r", 1:7)))
})

也可以看看

colSumssparseVector 類。

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Form Row and Column Sums and Means。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。