매트릭스가 아래와 같다고 가정하면 대각선 위 또는 아래 값은 동일합니다. 즉, [, 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] 삭제
몇 마디 만하겠습니다