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


R uniqTsparse 唯一(已排序)TsparseMatrix 表示


R語言 uniqTsparse 位於 Matrix 包(package)。

說明

檢測或“unify”(或“standardize”)非唯一的TsparseMatrix矩陣,生成唯一的 三元組,這些三元組首先在 中,然後在 中(在order(j,i)的意義上)。

請注意,"dgTMatrix"(和其他"TsparseMatrix"類)的new(.)spMatrixsparseMatrix構造函數隱式添加屬於相同 對的

anyDuplicatedT() 報告第一個重複對的索引,如果沒有,則報告 0

uniqTsparse(x) 用三元組 替換重複的索引對 及其相應的 x 槽條目,其中 sx = sum(x [<all pairs matching (i,j)>]) ,對於邏輯 x ,加法由邏輯 替換。

用法

uniqTsparse(x, class.x = c(class(x)))
anyDuplicatedT(x, di = dim(x))

參數

x

以三元組形式存儲的稀疏矩陣,即繼承自類 TsparseMatrix

class.x

指定 class(x) 的可選字符串。

di

xdim(x) 的矩陣維度。

uniqTsparse(x) 返回 TsparseMatrix “like x”,具有相同的類和相同的元素,隻是內部可能按排序順序更改為 “unique” 三元組。

anyDuplicatedT(x) 返回 integer 作為 anyDuplicated ,如果有的話,則返回第一個重複條目(來自 對)的索引,否則返回 0

例子


example("dgTMatrix-class", echo=FALSE)
## -> 'T2'  with (i,j,x) slots of length 5 each
T2u <- uniqTsparse(T2)
stopifnot(## They "are" the same (and print the same):
          all.equal(T2, T2u, tol=0),
          ## but not internally:
          anyDuplicatedT(T2)  == 2,
          anyDuplicatedT(T2u) == 0,
          length(T2 @x) == 5,
          length(T2u@x) == 3)

## is 'x' a "uniq Tsparse" Matrix ?  [requires x to be TsparseMatrix!]
non_uniqT <- function(x, di = dim(x))
  is.unsorted(x@j) || anyDuplicatedT(x, di)
non_uniqT(T2 ) # TRUE
non_uniqT(T2u) # FALSE

T3 <- T2u
T3[1, c(1,3)] <- 10; T3[2, c(1,5)] <- 20
T3u <- uniqTsparse(T3)
str(T3u) # sorted in 'j', and within j, sorted in i
stopifnot(!non_uniqT(T3u))

## Logical l.TMatrix and n.TMatrix :
(L2 <- T2 > 0)
validObject(L2u <- uniqTsparse(L2))
(N2 <- as(L2, "nMatrix"))
validObject(N2u <- uniqTsparse(N2))
stopifnot(N2u@i == L2u@i, L2u@i == T2u@i,  N2@i == L2@i, L2@i == T2@i,
          N2u@j == L2u@j, L2u@j == T2u@j,  N2@j == L2@j, L2@j == T2@j)
# now with a nasty NA  [partly failed in Matrix 1.1-5]:
L.0N <- L.1N <- L2
L.0N@x[1:2] <- c(FALSE, NA)
L.1N@x[1:2] <- c(TRUE, NA)
validObject(L.0N)
validObject(L.1N)
(m.0N <- as.matrix(L.0N))
(m.1N <- as.matrix(L.1N))
stopifnot(identical(10L, which(is.na(m.0N))), !anyNA(m.1N))
symnum(m.0N)
symnum(m.1N)

也可以看看

TsparseMatrix ,為了唯一性,特別是 dgTMatrix

相關用法


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