【发布时间】:2015-06-30 19:38:23
【问题描述】:
我有 2 个矩阵(expmat 和 mat)。
假设expmat 是
[1,] -1 -1 -1 -1 -1
[2,] 1 -1 -1 -1 -1
[3,] -1 1 -1 -1 -1
[4,] 1 1 -1 -1 -1
[5,] -1 -1 1 -1 -1
[6,] 1 -1 1 -1 -1
[7,] -1 1 1 -1 -1
[8,] 1 1 1 -1 -1
而mat 是
[1,] -2 -2 -2 -2 -2
[2,] 2 -2 -2 -2 -2
[3,] -2 2 -2 -2 -2
[4,] 2 2 -2 -2 -2
[5,] -2 -2 2 -2 -2
[6,] 2 -2 2 -2 -2
[7,] -2 2 2 -2 -2
我想创建一个循环,在每个循环中,我将 expmat 中的一行连接到 mat 中的所有行,以便最后创建 8 个矩阵,并且每个矩阵中的前 5 列完全相同(行来自expmat) 和其他列发生变化,因为它们来自垫子。例如,给定示例的前 2 个矩阵将显示为
Matrix1
-1 -1 -1 -1 -1 -2 -2 -2 -2 -2
-1 -1 -1 -1 -1 2 -2 -2 -2 -2
-1 -1 -1 -1 -1 -2 2 -2 -2 -2
-1 -1 -1 -1 -1 2 2 -2 -2 -2
-1 -1 -1 -1 -1 -2 -2 2 -2 -2
-1 -1 -1 -1 -1 2 -2 2 -2 -2
-1 -1 -1 -1 -1 -2 2 2 -2 -2
Matrix 2
1 -1 -1 -1 -1 -2 -2 -2 -2 -2
1 -1 -1 -1 -1 2 -2 -2 -2 -2
1 -1 -1 -1 -1 -2 2 -2 -2 -2
1 -1 -1 -1 -1 2 2 -2 -2 -2
1 -1 -1 -1 -1 -2 -2 2 -2 -2
1 -1 -1 -1 -1 2 -2 2 -2 -2
1 -1 -1 -1 -1 -2 2 2 -2 -2
这就是我正在做的:
for(row in 1:nrow(expmat)) {
for(row in 1:nrow(expmat)) {
val<-expmat[row,]
val<-as.matrix(val)
dshybrid=merge(t(val),mat, by=0, all=TRUE)
print(dshybrid)}
但是我得到了需要的东西
-1 -1 -1 -1 -1 -2 -2 -2 -2 -2
NA NA NA NA NA 2 -2 -2 -2 -2
NA NA NA NA NA -2 2 -2 -2 -2
NA NA NA NA NA 2 2 -2 -2 -2
NA NA NA NA NA -2 -2 2 -2 -2
NA NA NA NA NA 2 -2 2 -2 -2
NA NA NA NA NA -2 2 2 -2 -2
....
【问题讨论】: