【问题标题】:R transition plotR 过渡图
【发布时间】:2015-10-24 01:18:31
【问题描述】:

我想绘制一个转换矩阵,但我希望每个状态都有 2 列。

我的矩阵是:

> R
      0   30   60   90 <NA>
0  0.75 0.37 0.17 0.07 0.97
30 0.15 0.40 0.32 0.02 0.02
60 0.00 0.20 0.19 0.05 0.01
90 0.00 0.00 0.03 0.52 0.00
NA 0.10 0.03 0.29 0.35 0.00

因此,从状态 0 开始,剩余 75%,15% 变为 30,依此类推。

问题是我不想要下面的情节:

library(diagram)
plotmat(R)

相反,我想要每个状态有 2 列...根据 this answer 我需要创建一个 10x10 的表......有没有其他方法可以做到这一点而不必创建这样的表?

我的想法是不用修改原表就可以得到这个图:

为此,我使用以下代码转换了原始矩阵:

L<-matrix(nrow = 10, ncol = 10, byrow = TRUE, data = 0)

for (i in 1:(nrow(R))){
    for (j in 1: ncol(R))
{L[i*2,j*2-1]<-R[i,j]
}}

rownames(L)<-c('0','0', '30','30','60','60','90','90','NA','NA')

plotmat(L[1:6,1:6])

谢谢

【问题讨论】:

    标签: r matrix graph transition


    【解决方案1】:

    这是一个可能满足您需求的绘图(示例代码、矩阵和生成绘图的包):Transition Matrix Plot:

    install.packages("MmgraphR", repos="http://R-Forge.R-project.org")
    library(MmgraphR)
    ##########################################
    # Plotting a probability transition matrix
    ##########################################
    
    trmat<-matrix( c (0.1, 0.05, 0.05, 0.80,
                  0.06, 0.02, 0.03, 0.89,
                  0.03, 0.01, 0.01, 0.95,
                  0, 0, 0, 1), nrow = 4, ncol = 4, byrow = TRUE)
    
    trmatplot(trmat)
    

    【讨论】:

    • install.packages 中的警告:包“MmgraphR”不可用(适用于 R 版本 3.3.1)
    • 无法在任何地方找到任何版本的 MmgraphR。它甚至在 2022 年 4 月这个日期还存在吗?
    猜你喜欢
    • 2011-06-07
    • 1970-01-01
    • 2023-03-11
    • 2018-03-21
    • 2014-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多