R语言
uniqTsparse
位于 Matrix
包(package)。 说明
检测或“unify”(或“standardize”)非唯一的TsparseMatrix
矩阵,生成唯一的 三元组,这些三元组首先在 中,然后在 中(在order(j,i)
的意义上)。
请注意,"dgTMatrix"
(和其他"TsparseMatrix"
类)的new(.)
、spMatrix
或sparseMatrix
构造函数隐式添加属于相同 对的 。
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 |
以三元组形式存储的稀疏矩阵,即继承自类 |
class.x |
指定 |
di |
|
值
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 unpackedMatrix-class 解压缩密集矩阵的虚拟类“unpackedMatrix”
- R updown-methods 更新和降级稀疏 Cholesky 分解
- R dtrMatrix-class 三角形稠密数值矩阵
- R facmul-methods 乘以矩阵因式分解的因数
- R solve-methods 函数求解矩阵包中的方法
- R bdiag 构建分块对角矩阵
- R printSpMatrix 灵活格式化和打印稀疏矩阵
- R symmetricMatrix-class 包矩阵中对称矩阵的虚拟类
- R all.equal-methods 函数 all.equal() 的矩阵封装方法
- R boolmatmult-methods 布尔算术矩阵乘积:%&% 和方法
- R ltrMatrix-class 三角密集逻辑矩阵
- R Hilbert 生成希尔伯特矩阵
- R nearPD 最近正定矩阵
- R lsyMatrix-class 对称密集逻辑矩阵
- R CHMfactor-class 稀疏 Cholesky 分解
- R symmpart-methods 矩阵的对称部分和偏斜(对称)部分
- R sparseMatrix 从非零项构建一般稀疏矩阵
- R dgCMatrix-class 压缩、稀疏、面向列的数值矩阵
- R Cholesky-methods Cholesky 分解方法
- R Subassign-methods “[<-”的方法 - 分配给“矩阵”的子集
- R ldenseMatrix-class 密集逻辑矩阵的虚拟类“ldenseMatrix”
- R norm-methods 矩阵范数
- R ngeMatrix-class 一般密集非零模式矩阵的“ngeMatrix”类
- R CAex 阿尔伯斯的示例矩阵与“困难”特征分解
- R diagonalMatrix-class 对角矩阵的“diagonalMatrix”类
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Unique (Sorted) TsparseMatrix Representations。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。