使用标签矩阵创建概率矩阵
Creating a probability matrix with its label matrix
我在 R 中有这个过程:
M=4
n=3
number = runif(M,0,1)
label =LETTERS[1:M]
res <- xtabs(data.frame(c(number),c(label)))
sample <- sample(res,choose(n,2), replace = TRUE)
prob.matrix <- matrix(0, nrow = 3, ncol = 3)
prob.matrix[upper.tri(prob.matrix )]<- sample
得到抽样的概率三角矩阵。例如,如果有:
> res
c.label.
A B C D
0.1668435 0.6432194 0.9573289 0.3870988
> sample
c.label.
C C A
0.9573289 0.9573289 0.1668435
> prob.matrix
[,1] [,2] [,3]
[1,] 0 0.9573289 0.9573289
[2,] 0 0.0000000 0.1668435
[3,] 0 0.0000000 0.0000000
比prob.matrix,我想要一个标签矩阵,显示每个概率的标签,如:
> label.matrix
[,1] [,2] [,3]
[1,] 0 C C
[2,] 0 0 A
[3,] 0 0 0
我应该怎么做才能获得label.matrix?
也许你可以试试下面的代码
label.matrix <- prob.matrix
label.matrix[label.matrix!=0] <- names(sample)
或
label.matrix <- prob.matrix
label.matrix[upper.tri(label.matrix)] <- names(sample)
我在 R 中有这个过程:
M=4
n=3
number = runif(M,0,1)
label =LETTERS[1:M]
res <- xtabs(data.frame(c(number),c(label)))
sample <- sample(res,choose(n,2), replace = TRUE)
prob.matrix <- matrix(0, nrow = 3, ncol = 3)
prob.matrix[upper.tri(prob.matrix )]<- sample
得到抽样的概率三角矩阵。例如,如果有:
> res
c.label.
A B C D
0.1668435 0.6432194 0.9573289 0.3870988
> sample
c.label.
C C A
0.9573289 0.9573289 0.1668435
> prob.matrix
[,1] [,2] [,3]
[1,] 0 0.9573289 0.9573289
[2,] 0 0.0000000 0.1668435
[3,] 0 0.0000000 0.0000000
比prob.matrix,我想要一个标签矩阵,显示每个概率的标签,如:
> label.matrix
[,1] [,2] [,3]
[1,] 0 C C
[2,] 0 0 A
[3,] 0 0 0
我应该怎么做才能获得label.matrix?
也许你可以试试下面的代码
label.matrix <- prob.matrix
label.matrix[label.matrix!=0] <- names(sample)
或
label.matrix <- prob.matrix
label.matrix[upper.tri(label.matrix)] <- names(sample)