는 R

2014-02-26 2 views
1
내가 행 이름과 열 이름과 관련하여 내 매트릭스 대칭을 만들고 싶어

에서 행하기 위해 관련 및 열 이름을 가진 매트릭스 대칭 만들기, 예를 들어, 나는는 R

> ma 
    a b c d 
    a 1 5 9 13 
    c 9 10 11 15 
    b 5 6 10 14 
    d 13 14 15 16 

내가 원하는 행렬이 행렬은 대칭 실제로 내가 (때문에)는, 인접 행렬 일하고뿐만 아니라 (이다 있도록 행렬을 의미

> ma 
    a b c d 
    a 1 5 9 13 
    b 5 6 10 14 
    c 9 10 11 15 
    d 13 14 15 16 

처럼 만드는 것은 row.names 및 열 이름의 관점에서 대칭은 동일 인접성 매트릭스가 중요하기 때문에 ymmetric.

+1

'ma [order (rownames (ma)), order (colnames (ma))]'와 같은 것을 의미합니까? – A5C1D2H2I1M1N2O1R2T1

+0

이미지 그래프에 대한 인접 행렬이 있는데, 행과 열은 그래프의 노드를 나타냅니다. rownames를 사용하여 행렬을 열과 동일한 순서로 정렬한다고 가정 할 때 자연스럽게 대칭 행렬을 얻습니다. – ToBeGeek

답변

2

업데이트

ma[colnames(ma), ] 
# a b c d 
# a 1 5 9 13 
# b 5 6 10 14 
# c 9 10 11 15 
# d 13 14 15 16 

이 당신의 매트릭스를 가정하는 정사각형과 rownames이 COLNAMES과 동일 작동합니다. 둘 다 정렬하려면 Ananda의 대답을 사용하십시오 (이 특별한 경우에는 동일한 결과를 얻습니다).

OLD


당신이 무슨 뜻인지 이것이다 :이 행렬은 대칭이다

ma[] <- apply(ma, 2, sort) 
# a b c d 
# a 1 5 9 13 
# c 5 6 10 14 
# b 9 10 11 15 
# d 13 14 15 16 

참고 만의 데이터가 가능성을 수 있기 때문에 그것은 단지이다. 다른 순서로 대칭 행렬을 만들 수있는 다른 데이터가있을 수 있지만 이는 내 전문 지식이 아닙니다. 여기에서 우리는 각 열 내에서 오름차순으로 정렬합니다.

+0

죄송합니다, 내 친구, 나는 그것을 열 이름과 행 이름과 관련하여 대칭으로 만드는 것에 대해 이야기하고 있습니다. 따라서 colnames는 a, b, c, d가되어야합니다. 또한 행 이름도 a, b, c, d 여야합니다. 행렬 – ToBeGeek

+0

@ToBeGeek의 값을 정렬 할뿐만 아니라 업데이트 된 응답 – BrodieG

+0

@ToBeGeek를 참조하십시오.이 질문에 대한 대답이 이전 질문입니까? – BrodieG