1、創建測試矩陣
> rname <- paste0("r",1:4) > rname [1] "r1" "r2" "r3" "r4"
> cname <- paste0("c",1:5) > cname [1] "c1" "c2" "c3" "c4" "c5"
> a <- matrix(1:20, nrow = 4, ncol = 5, byrow = T, + dimnames = list(rname,cname)) > a c1 c2 c3 c4 c5 r1 1 2 3 4 5 r2 6 7 8 9 10 r3 11 12 13 14 15 r4 16 17 18 19 20
2、列行輸出
> c1 <- rep(1:nrow(a), ncol(a)) > c1 [1] 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
> c2 <- rep(1:ncol(a),each = nrow(a)) > c2 [1] 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5
> out1 <- data.frame(c1,c2,c3 = a[1:length(a)]) > out1 c1 c2 c3 1 1 1 1
2 2 1 6
3 3 1 11
4 4 1 16
5 1 2 2
6 2 2 7
7 3 2 12
8 4 2 17
9 1 3 3
10 2 3 8
11 3 3 13
12 4 3 18
13 1 4 4
14 2 4 9
15 3 4 14
16 4 4 19
17 1 5 5
18 2 5 10
19 3 5 15
20 4 5 20
3、行列輸出
> c1 <- rep(1:nrow(a),each = ncol(a)) > c1 [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4
> c2 <- rep(1:ncol(a),nrow(a)) > c2 [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
> b <- matrix(1:length(a), nrow = ncol(a), ncol = nrow(a), + byrow = T) > b [,1] [,2] [,3] [,4] [1,] 1 2 3 4 [2,] 5 6 7 8 [3,] 9 10 11 12 [4,] 13 14 15 16 [5,] 17 18 19 20
> out2 <- data.frame(c1, c2, c3 = a[b] ) > out2 c1 c2 c3 1 1 1 1
2 1 2 2
3 1 3 3
4 1 4 4
5 1 5 5
6 2 1 6
7 2 2 7
8 2 3 8
9 2 4 9
10 2 5 10
11 3 1 11
12 3 2 12
13 3 3 13
14 3 4 14
15 3 5 15
16 4 1 16
17 4 2 17
18 4 3 18
19 4 4 19
20 4 5 20