2012-08-22 8 views
2

멋진 거리 추정 (dcorr, 갈색 거리)을 사용하여 상관 행렬을 만드는 함수를 작성하려고합니다. 더 일반적으로, 나는 거리 추정기를 연결할 수있는 일반적인 "상관"행렬에 대한 코드를 작성하려고합니다.소설 거리 함수를 사용하여 상관 행렬 만들기

내 데이터는 열이 변수이고 행이 관측치가되도록 형식이 지정됩니다.

기본 코드에 문제가 있습니다.

  • 사용이
  • 사용하면 변수 두 쌍을 가지고 있어야 다시이 시점에서 전체 매트릭스
  • 에 적용 걸릴 함수에 변수
  • 패스를 받아 신청을 다음과 같이 내 알고리즘은 na.omit

나는이 다시 것 기대했다 dcorr

  • 계산 (dcorr에 필요한)없는 관찰을 제거 상관 행렬에 sult하지만 기본 변수 관리에 많은 문제가 있습니다. apply 함수에 변수를 전달하는 데 어려움이 있습니다.

    dcormatrix <- function(Matrix){ 
        dcorhelper <- function (Col1){ 
        as.matrix(apply(Matrix,2,function(Col2){ 
         B <- na.omit(cbind(Col1,Col2)) 
         dcor(B[,1],B[,2],index=1) 
        },Col1=Col1)) 
        } 
    apply(Matrix,2,dcorhelper(),Matrix=Matrix) 
    } 
    

    어떤 아이디어 : 특히, I (즉,이 전체 원본 행렬에 적용된다)

    내 코드를 적용한 적용 번째로 전달 제에 인출 된 열을 전달할 ? 나는 이것을 할 수있는 쉬운 방법이 될 것이라고 확신합니다.

  • +0

    왜 이렇게하려면'dist()'를 사용하지 않으시겠습니까? – Andrie

    +0

    함수에'browser()'를 삽입하여 무슨 일이 일어나는지 볼 수 있습니다. 이렇게하면 변수에 대한 통찰력과 전달 방법을 알 수 있습니다. –

    답변

    1

    vegan 패키지에서 designdist을 확인하시기 바랍니다. 그것은 대체 거리/비평 행렬을 정의 할 수 있습니다. here을 참조하십시오.

    관련 문제