행렬을 열로 변환

사쿠라

매트릭스가 아래와 같다고 가정하면 대각선 위 또는 아래 값은 동일합니다. 즉, [, 1] x [2,] 및 [, 2] x [1,] 모두 행렬에서 2입니다.

> m = cbind(c(1,2,3),c(2,4,5),c(3,5,6))
> m
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    2    4    5
[3,]    3    5    6

그러면 1, 2, 3의 실명이 있습니다.

>Real_name
A B C   # A represents 1, B represents 2, and C represents 3.

행렬을 각 쌍에 해당하는 실제 이름을 포함하는 3 개의 열로 변환하고 쌍이 고유해야하는 경우 A x B는 B x A와 동일하므로 A x B 만 유지합니다. R을 사용하여 어떻게 할 수 있습니까?

A A 1
A B 2 
A C 3 
B B 4 
B C 5
C C 6
리 제 위안

다음은 간단합니다.

m <- cbind(c(1,2,3), c(2,4,5), c(3,5,6))
## read `?lower.tri` and try `v <- lower.tri(m, diag = TRUE)` to see what `v` is
## read `?which` and try `which(v, arr.ind = TRUE)` to see what it gives
ij <- which(lower.tri(m, diag = TRUE), arr.ind = TRUE)

Real_name <- LETTERS[1:3]
data.frame(row = Real_name[ij[, 1]], col = Real_name[ij[, 2]], val = c(m[ij]))

#  row col val
#1   A   A   1
#2   B   A   2
#3   C   A   3
#4   B   B   4
#5   C   B   5
#6   C   C   6

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사