[英]Is there a method with R function duplicated() for a sparse matrix from {Matrix}?
[英]R pnorm function with sparse matrix
我想找到一個大型稀疏矩陣的 pvalues。 該矩陣中的所有元素都是標准的正態 z 分數。 我想用pnorm
function,但是遇到了pnorm
不支持稀疏矩陣的問題。 除了將稀疏矩陣轉換為全矩陣之外,還有其他更有效的方法嗎?
任何建議表示贊賞!
如果它是一個稀疏矩陣,您可以輕松地將 0 值替換為 pnorm(0..)。 剩下的就是計算非零值,您可以這樣做。 例如一個稀疏矩陣:
data <- rnorm(1e5)
zero_index <- sample(1e5)[1:9e4]
data[zero_index] <- 0
mat <- matrix(data, ncol=100)
mat_sparse <- Matrix(mat, sparse=TRUE)
創建一個 pnorm 為 0 的矩陣:
mat_pnorm <- matrix(pnorm(rep(0,length(mat_sparse))),ncol=ncol(mat_sparse))
nzData <- summary(mat_sparse)
mat_pnorm[as.matrix(nzData[,1:2])] <- pnorm(nzData$x)
all.equal(mat_pnorm,pnorm(mat))
[1] TRUE
您沒有指定您希望 p 值的方式,但您可以輕松地將其轉換為向量而不是上面使用的矩陣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.