R 创建上三角矩阵作为表格
我有一个(I,j,x)格式的1亿行以上的矩阵。对于某些行,(i,j,x)和(j,i,x)都存在。对于其他人,只有(j,i,x)(j>i)存在。我正在寻找一种有效的方法,将其转换为上三角格式(I,j,x)(IR 创建上三角矩阵作为表格,r,matrix,R,Matrix,我有一个(I,j,x)格式的1亿行以上的矩阵。对于某些行,(i,j,x)和(j,i,x)都存在。对于其他人,只有(j,i,x)(j>i)存在。我正在寻找一种有效的方法,将其转换为上三角格式(I,j,x)(I
set.seed(100)
N <- 10000
M <- 1000
mat <- cbind(sample(1:M,N,replace=TRUE),sample(1:M,N,replace=TRUE),runif(N))
mat.out <- mat[mat[,1]<mat[,2],]
idx.flip <- which(runif(nrow(mat.out))<.3)
idx.del <- idx.flip[seq(1,length(idx.flip)%/%2)]
mat.in <- rbind(mat.out[-idx.del,], cbind(mat.out[,2],mat.out[,1],mat.out[,3])[idx.flip,])
set.seed(100)
N当前,mat.out
中存在重复索引,这是预期的吗?输出矩阵中不应存在重复索引。您可以使用mat,您可以尝试类似于inds mat.in[,2]的方法;mat.在[inds,1:2]中,我读到了严重的术语混乱:如果它有三维,它就不是R矩阵。“在场”的概念也不清楚。你是说NA
?您定义的mat
-对象有N行和3列,因此无法由[i,j,x]
索引。