我有以下数据框“j”......并且想要转换为一个由零和一个组成的矩阵,如下所示,但我正在寻找一种更简单的方法来在 R 中转换它......矩阵表示数据框的值,..例如矩阵是(81x3)......如果我在df中有一个“1”,一个“1”将写入矩阵的第一列,如果有在df中得到一个“2”,一个“1”将写入矩阵的第二列......谢谢!
g <- h <- i <- c(1:3)
j<-expand.grid(g,h,i)
j
Var1 Var2 Var3
1 1 1 1
2 2 1 1
3 3 1 1
4 1 2 1
5 2 2 2
.
.
.
m<-matrix(0,81,3)
m[1,1]=m[1,1]+1;m[2,1]=m[2,1]+1;m[3,1]=m[3,1]+1
m[4,2]=m[4,2]+1;m[5,1]=m[5,1]+1;m[6,1]=m[6,1]+1
m[7,3]=m[7,3]+1;m[8,1]=m[8,1]+1;m[9,1]=m[9,1]+1
m[10,1]=m[10,1]+1;m[11,2]=m[11,2]+1;m[12,1]=m[12,1]+1
m[13,2]=m[13,2]+1;m[14,2]=m[14,2]+1;m[15,1]=m[15,1]+1
m[16,2]=m[16,2]+1;m[17,2]=m[17,2]+1;m[18,2]=m[18,2]+1
head(m)
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 1 0 0
[3,] 1 0 0
[4,] 0 1 0
[5,] 1 0 0
[6,] 1 0 0
[7,] 0 0 1
[8,] 1 0 0
[9,] 1 0 0
[10,] 1 0 0
[11,] 0 1 0
[12,] 1 0 0
[13,] 0 1 0
[14,] 0 1 0
[15,] 0 1 0