2013-09-29 8 views
1

행이 500 행 (2 진수)이고 행이 120 개인 파일이 있습니다. 이 파일은 0과 1의 간단한 행렬입니다.R 행렬에 상관 행렬 생성

>file 

00010010101010 
01001010100101 
00101001010001 
11110101001010 

나는 행 사이의 상관 관계를 찾기 위해 특별한 상관 관계 공식을 사용하는 함수를 작성하고 있습니다. 두 벡터 행을 입력 fn (row1, row2)으로 사용합니다. 예. row1 및 row2를 검색하고이 특수한 상관 관계를 계산합니다.

>fn(file[1,], file[2,]) 
>0.32 

나는 두 행을 위해 그것을 할 수 있어요하지만 내가 어떻게 모든 행에 대한 500x500 상관 행렬을 만들 수 있습니다. 누군가가 도와 주실 수 있습니까? 감사.

답변

5

이 시도 :

corr.mat <- outer(seq_len(nrow(file)), seq_len(nrow(file)), 
        Vectorize(function(i, j) fn(file[i,], file[j,]))) 

을이 사용자의 요구에 너무 느린 경우, 거기에 더 나은 방법이 될 수 있지만 당신이 fn가 어떻게해야되는 것을 표시해야합니다.

P .: file은 R의 함수 이름이므로, 자신의 변수에 사용하지 마십시오.

+0

감사합니다. 나는 그것을 시도해보고 어떤 일이 일어나는지 봅니다. fn은 사전 지정된 4 색 상관을 계산합니다. 그래서 데이터 프레임의 모든 행 변수에 대해 500x500 상관 행렬을 생성하려고했습니다. 나는 그것을 시험해 볼 것이다. – CadisEtRama