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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。