2015-02-04 3 views
4

전이 매트릭스를 플로팅하고 싶습니다만, 모든 상태로 2 개의 컬럼이 필요합니다.R 전환 플롯

내 행렬이다 :

> 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 등으로 진행한다. this answer에 따라 나는를 만들어야합니다 ...

library(diagram) 
plotmat(R) 

enter image description here

대신 나는 각 주와 2 열을 원하는 :

것은 나는 다음과 같은 플롯을 원하지 않는다는 것입니다 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]) 

enter image description here

감사 :

내가 다음 코드를 사용하여 원래의 행렬을 변환 이렇게하려면 :

미 아이디어는 원래 테이블을 수정할 필요없이이 그래프를 얻을 수 있습니다

답변

1

다음은 사용자의 요구 (플롯을 생성하는 샘플 코드, 매트릭스 및 패키지)를 충족시킬 수있는 플롯입니다. Transition Matrix Plot : install.packages에서

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) 
+0

경고 : 패키지 'MmgraphR'는 사용할 수 없습니다 (R 버전 3.3.1에 대한) –