簡體   English   中英

R-“無法將類別'” msm.est”強制轉換為data.frame”

[英]R - “cannot coerce class ‘”msm.est“’ to a data.frame”

我是R的面向對象設置的新手,所以輕松點:)

我正在使用msm ,尤其是pmatrix 函數 該函數正常工作,並在調用時打印矩陣:

t = pmatrix.msm(x=fb.msm.tech)

print(t)

            State 1      State 2   State 3    State 4    State 5
State 1 0.215414273 0.0177223229 0.6120709 0.08127077 0.07352177
State 2 0.033494683 0.6421517256 0.2223060 0.02454739 0.07750024
State 3 0.007500551 0.0001843707 0.7530770 0.15781630 0.08142178
State 4 0.008522211 0.0002170102 0.2993561 0.57798320 0.11392148
State 5 0.000000000 0.0000000000 0.0000000 0.00000000 1.00000000

tmsm.est類的對象,但我想將其轉換為data.frame (或矩陣)。 我該怎么做? 這會導致錯誤:

> data.frame(t)
Error in as.data.frame.default(x[[i]], optional = TRUE) : 
  cannot coerce class ‘"msm.est"’ to a data.frame

這是關於t一些屬性; 讓我知道您是否需要更多信息:

> typeof(t)
[1] "double"

> str(t)
Error in unclass(x)[i, j] : subscript out of bounds

> class(t)
[1] "msm.est"

> methods(class=class(t))
[1] [     print
see '?methods' for accessing help and source code

> dput(t)
structure(c(0.215414272798276, 0.0334946826176258, 0.00750055145168075, 
0.00852221143845429, 0, 0.0177223229119804, 0.642151725588598, 
0.00018437071164374, 0.000217010203854516, 0, 0.612070862567051, 
0.222305955350619, 0.753077002693833, 0.299356094968411, 0, 0.0812707673639357, 
0.024547392341985, 0.157816299874524, 0.577983203836297, 0, 0.0735217743587564, 
0.0775002441011723, 0.081421775268318, 0.113921479552984, 1), .Dim = c(5L, 
5L), .Dimnames = list(c("State 1", "State 2", "State 3", "State 4", 
"State 5"), c("State 1", "State 2", "State 3", "State 4", "State 5"
)), class = "msm.est")

msm.est對象基本上只是具有特殊類的矩陣。 您可以刪除該類以獲取矩陣,然后使用data.frame()將矩陣轉換為data.frame。

data.frame(unclass(t))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM