2017-02-28 4 views
0

나는 R과 함께 일하는 법을 아직 배웠다. 나는 앞으로는 그러할 생각이지만,이 특별한 문제는 더 즉각적인주의가 필요합니다.두 열의 데이터를 행렬로 변환하는 방법은 무엇입니까?

시각화를 위해 Gephi로 가져올 두 개의 데이터 열을 가져 오려고합니다. 이에

A x 
A y 
A z 

B x 
B y 
B w 

: 특히, 나는이 변환하려고 해요

x y 2 
x z 1 
x w 1 
y z 1 
y w 1 
z w 0 
: 이후

x y z w 
x 0 2 1 1 
y 2 0 1 1 
z 1 1 0 0 
w 1 1 0 0 

, 나는 행렬의 위쪽 삼각형을이 형식에 넣어 필요

이러한 프로세스가 어떻게 호출되는지 모르겠으므로 여기 및 Google에서 내 검색 결과가 비어 있습니다.

누군가 올바른 방향으로 나를 가르쳐 주시겠습니까?

+0

예제는 완전히 명확하지 않지만'data.frame (table (unstack (df [2 : 1])))) – alistaire

+0

왜 대각 요소가 모두 0입니까? 'xx'와'yy' 엘리먼트는 모두 A와 B 열 둘 다에 나타나기 때문에 1이어야하지 않습니까? – useR

+0

@alistaire는 작동하지 않았지만 대답을 찾았습니다. 감사! –

답변

1

발견. 이를 동시 발생 행렬이라고합니다. 대각선 요소는 그룹에서 다른 그룹과 함께 표시되는 횟수를 계산하기 때문에 0이지만 자체는 아닙니다. 아래 코드는 일 :

V <- crossprod(table(dat[1:2])) 
diag(V) <- 0 
V 

Source

내가 더 낮은 삼각 행렬

V[upper.tri(V)] = NA 

으로 끝낼 수 아래의 코드를 실행 그리고 다음이 공동 대응 열

에 결국
library(reshape2) 
df <- melt(V, na.rm=TRUE) 

Source

관련 문제