아래 행렬과 비슷한 행렬이 있지만 더 큽니다.R에 적용을 사용하여 행렬을 쌍으로 된 목록으로 바꿉니다.
vec <- c(0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0)
M <- matrix(vec, nrow = 4, byrow = TRUE)
colnames(M) <- rownames(M) <- LETTERS[1:4]
A, B, C, D
A, 0, 1, 1, 0
B, 0, 0, 1, 1
C, 1, 0, 0, 0
D, 0, 1, 1, 0
궁극적 I는 매트릭스 또는 연속 콜에 값이 각각 시간, I는 rowname 열 이름 쌍이 종단 A data.frame 싶습니다. 그래서, 위의 행렬 주어, 나는 아래의 행렬 또는 데이터 프레임 끝 :
A,B
A,C
B,C
B,D
C,A
D,B
D,C
내가 루프와 expand.grid이 작업을 수행 할 수 있지만 내가 함께 할 수 있어야 뭔가 것 같아 기능을 적용하십시오. 예를 들어,이 같은이 부분의 방법을 얻을 수 있습니다 : 그것은 쉬운 경우
tmp <- apply(M, 1, function(x) colnames(M)[which(x > 0)])
나에게
$A
[1] "B" "C"
$B
[1] "C" "D"
$C
[1] "A"
$D
[1] "B" "C"
을 제공하는, 나는 또한 셀의 수를 포함 할 수 있습니다 (0 이상 세포) 세 번째 열로?