R - 从3个原始向量创建矩阵

Bat*_*ven 2 r matrix

我有3个向量如下:

A <- c("A", "B", "C", "D", "E")
B <- c("1/1/1", "1/1/1", "2/1/1", "2/1/1", "3/1/1")
C <- c(1, 1, -1, 1, -1)
Run Code Online (Sandbox Code Playgroud)

我想使用这3个向量创建如下的矩阵:

- 1/1/1 2/1/1 3/1/1
A   1    0     0
B   1    0     0
C   0    -1    0
D   0    1     0
E   0    0     -1
Run Code Online (Sandbox Code Playgroud)

其中矢量AB分别是行和列和我有数据C.任何帮助,将不胜感激.

the*_*ail 6

使用 ?xtabs

xtabs(C ~ A+B)
#   B
#A   1/1/1 2/1/1 3/1/1
#  A     1     0     0
#  B     1     0     0
#  C     0    -1     0
#  D     0     1     0
#  E     0     0    -1
Run Code Online (Sandbox Code Playgroud)

  • 这是繁荣. (2认同)

nic*_*ola 5

你可以试试:

`[<-`(array(0,c(length(unique(A)),length(unique(B))),
      list(unique(A),unique(B))),
       cbind(A,B),C)
#  1/1/1 2/1/1 3/1/1
#A     1     0     0
#B     1     0     0
#C     0    -1     0
#D     0     1     0
#E     0     0    -1
Run Code Online (Sandbox Code Playgroud)

  • 你可能会认为''[< - '(A,cbind(i,j),C)```A [cbind(i,j)] < - C` (2认同)