【发布时间】:2019-12-17 15:26:06
【问题描述】:
我有一个仅由一个矩阵组成的列表:
$`1`
Buy C-Level_3RDLIVE C-Level_3RDWP C-Level_AR C-Level_ARCHWEB C-Level_ASKOD C-Level_CR
Buy 0 0.1818182 0.0000000 0 0 0 0
C-Level_3RDLIVE 0 0.0000000 0.0000000 0 0 0 0
C-Level_3RDWP 0 0.0000000 0.1111111 1 0 0 0
C-Level_AR 0 0.0000000 0.0000000 0 0 0 0
C-Level_ARCHWEB 0 0.0000000 0.0000000 0 0 0 1
它来源于“clickstream”包的“fitMarkovchain”函数的矩阵:
#fit the model
mc <- fitMarkovChain(clickstreamList = cls, order = 1,
control = list(optimizer = "quadratic"))
mc
#extract list of matrix
tr<-mc@transitions
我的目标是对上述矩阵进行垂直重构,将行/标签名称和概率分别放在单独的列中。我尝试了以下方法:
tr<-tr[[1]]
rwn<-rownames(tr)
as.data.frame(t(as.matrix((tr))))
但似乎 tr 对象保留了列表数据类型,尽管进行了 as.matrix 转换。
想要的输出是:
x1 x2 %
Buy Buy 0
Buy C-level_3Rdlive 0.1818182
.. .. ..
关于如何删除列表类型并垂直重塑矩阵的任何提示?
但是tr对象是
【问题讨论】:
-
为什么在
transposing 之前需要as.matrix部分?另外,至少使用iris,结果似乎不是一个列表。它是一个data.frame对象。t可能不是您需要的功能? -
类型归类为list: > typeof(tr) [1] "list" 。它是“clickstream”包的“fitMarkovChain”函数的结果