1

请输入以下代码:

A <- matrix(11, nrow = 4, ncol = 3)
A[,2] <- seq(119, 122, 1)
A[,3] <- seq(45, 42)
B <- matrix(39, nrow = 4, ncol = 3)
B[,2] <- seq(119, 122, 1)
B[,3] <- seq(35, 32)
C <- matrix(67, nrow = 4, ncol = 3)
C[,2] <- seq(119, 122, 1)
C[,3] <- seq(27, 24)

D <- rbind(A, B, C)

你会得到D一个 12 x 3 的矩阵;我想知道MatD.

> Mat
    11 39 67
119 45 35 27
120 44 34 26
121 43 33 25
122 42 32 24

实际上,MatD由 的第一列和第二列索引的最后一列D;例如,考虑Mat[1,1]哪个等于 45:它来自唯一D由 11 和 119 标识的行。

我怎样才能得到它?

谢谢,

4

2 回答 2

3

您可以使用xtabs

xtabs(D[,3]~D[,2]+D[,1])
      D[, 1]
D[, 2] 11 39 67
   119 45 35 27
   120 44 34 26
   121 43 33 25
   122 42 32 24
于 2012-09-11T14:51:20.690 回答
2
library(reshape2)
dcast(data.frame(D), X2 ~ X1)
于 2012-09-11T14:52:10.057 回答