【问题标题】:Calculation of square transition matrix方过渡矩阵的计算
【发布时间】:2014-01-16 16:18:09
【问题描述】:

我想计算状态 p(=previous) 和 n(=next) 之间的平方非归一化(= 频率)转换矩阵。我试过以下脚本:

p <- c("S1", "S1", "S2", "S3", "S4")
n <- c("S2", "S2", "S3", "S4", "S5")
d <- data.frame(fprev=p, fnext=n)
counts <- table( as.data.frame( d ))

计数如下:

     fnext
fprev S2 S3 S4 S5
   S1  2  0  0  0
   S2  0  1  0  0
   S3  0  0  1  0
   S4  0  0  0  1

这与我想要的非常接近,但我想获得类似的结构,只是 fnext 和 fprev 的值都是 S1 S2 S3 S4 S5 (我已经尝试将 dnn 参数设置为 table 和 deparse.level,但它们似乎没有帮助)

所以预期的输出在列和行方向上都应该有 S1 S2 S3 S4 S5(自然会有更多的值 0,例如 fprev 中没有 S5 状态)

【问题讨论】:

    标签: r function matrix transition


    【解决方案1】:

    为了使表格中的所有级别都为零,您应该将 fprevfnext 设置为具有相同级别的因子,就像这样

    p <- c("S1", "S1", "S2", "S3", "S4")
    n <- c("S2", "S2", "S3", "S4", "S5")
    
    lvls <- sort(unique(c(p, n)))
    
    d <- data.frame(
        fprev = factor(p, levels=lvls),
        fnext = factor(n, levels=lvls)
    )
    
    counts <- table(d)
    

    现在你的counts 表应该是你想要的样子了。

    fprev S1 S2 S3 S4 S5
       S1  0  2  0  0  0
       S2  0  0  1  0  0
       S3  0  0  0  1  0
       S4  0  0  0  0  1
       S5  0  0  0  0  0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-06
      • 2015-05-17
      • 2019-04-04
      • 1970-01-01
      • 1970-01-01
      • 2012-03-18
      相关资源
      最近更新 更多