2014-01-16 6 views
0

상태 p (= 이전)와 n (= 다음) 사이의 제곱 정규화 (= 주파수) 전이 행렬을 계산하고 싶습니다.제곱 전이 행렬 계산

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 012 (테이블과 deparse.level에 대한 dnn 매개 변수를 시도했지만 도움이되지 않았다.)

예상되는 출력에는 S1 S2 S3 S4 S5가 있어야합니다. 예를 들어 0과 같은 값 오히려 당신이 그렇게

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 표해야처럼 같은 수준의 요인으로 fprevfnext을 설정해야 테이블에서 모든 레벨 제로를 얻기 위해 fprev에는 S5 상태)

답변

3

없다 당신이 그것을 원하는 방법이 될 수 있습니다.

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