invertPerm
位於 Matrix
包(package)。 說明
invertPerm
和 signPerm
計算長度-n
排列向量的倒數和符號。 isPerm
測試長度為 n
的整數向量是否是有效的排列向量。 asPerm
將長度 m
轉置向量強製轉換為長度 n
置換向量,其中 m <= n
。
用法
invertPerm(p, off = 1L, ioff = 1L)
signPerm(p, off = 1L)
isPerm(p, off = 1L)
asPerm(pivot, off = 1L, ioff = 1L, n = length(pivot))
invPerm(p, zero.p = FALSE, zero.res = FALSE)
參數
p |
長度為 |
pivot |
長度為 |
off |
整數偏移量,指示 |
ioff |
整數偏移量,指示結果應該是 |
n |
大於或等於 |
zero.p |
一個合乎邏輯的。相當於 |
zero.res |
一個合乎邏輯的。相當於 |
細節
對於 off
的所有值,invertPerm(p, off, ioff=1)
相當於 order(p)
或 sort.list(p)
。對於默認值 off=1
,它返回 p[p] <- seq_along(p)
之後的 p
的值。
invPerm
是 invertPerm
的簡單包裝器,保留用於向後兼容。
值
默認情況下,即使用 off=1
和 ioff=1
:
invertPerm(p)
返回長度為 length(p)
的整數向量,使得 p[invertPerm(p)]
和 invertPerm(p)[p]
都是 seq_along(p)
,即恒等排列。
如果 p
是偶數排列,signPerm(p)
返回 1,否則 -1
返回 1(即,如果 p
是奇數)。
如果p
是seq_along(p)
的排列,則isPerm(p)
返回TRUE
,否則返回FALSE
。
asPerm(pivot)
返回初始化為 seq_len(n)
的置換向量的元素 i
和 pivot[i]
的轉置結果,對於 seq_along(pivot)
中的 i
。
例子
p <- sample(10L) # a random permutation vector
ip <- invertPerm(p)
s <- signPerm(p)
## 'p' and 'ip' are indeed inverses:
stopifnot(exprs = {
isPerm(p)
isPerm(ip)
identical(s, 1L) || identical(s, -1L)
identical(s, signPerm(ip))
identical(p[ip], 1:10)
identical(ip[p], 1:10)
identical(invertPerm(ip), p)
})
## Product of transpositions (1 2)(2 1)(4 3)(6 8)(10 1) = (3 4)(6 8)(1 10)
pivot <- c(2L, 1L, 3L, 3L, 5L, 8L, 7L, 8L, 9L, 1L)
q <- asPerm(pivot)
stopifnot(exprs = {
identical(q, c(10L, 2L, 4L, 3L, 5L, 8L, 7L, 6L, 9L, 1L))
identical(q[q], seq_len(10L)) # because the permutation is odd:
signPerm(q) == -1L
})
invPerm # a less general version of 'invertPerm'
也可以看看
置換矩陣的pMatrix
類。
相關用法
- R indMatrix-class 索引矩陣
- R index-class 虛擬類“index” - 矩陣索引的簡單類
- R isSymmetric-methods “Matrix”包中函數“isSymmetric”的方法
- R is.null.DN Dimnames dn 是否類似於 NULL?
- R is.na-methods “矩陣”對象的 is.na()、is.finite() 方法
- R image-methods “Matrix”包中的 image() 方法
- R isTriangular-methods 測試矩陣是三角形還是對角矩陣
- R dtrMatrix-class 三角形稠密數值矩陣
- R facmul-methods 乘以矩陣因式分解的因數
- R solve-methods 函數求解矩陣包中的方法
- R updown-methods 更新和降級稀疏 Cholesky 分解
- 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-devel大神的英文原創作品 Utilities for Permutation Vectors。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。