从基于另一个矩阵

时间:2015-10-10 17:15:14

标签: r select matrix rows

我需要你的帮助!

我试图根据第一个矩阵的ID拉出第二个矩阵的行。要检查我的函数(这里没有提供)是否正常工作,我运行以下代码(CritMat是第二个矩阵,parms是第一个):

results <- matrix(0, nrow = 15, ncol = 8)
colnames(results) <- c("alpha", "beta", "omega", "T=64", "T=128", "T=256", "T=512", "T=1024")
for (r in 1:15) {
    results [r,] <- CritMat[CritMat[, 1] == parms[r, 2] & CritMat[, 2] == 
    parms[r, 1] & CritMat[, 3] == parms[r, 3] , ]
    print(results[r,])
}

循环适用于前4次迭代,然后是第5次的以下错误消息:

*Error in results[r, ] <- CritMat[CritMat[, 1] == parms[r, 2] & CritMat[,  : 
  replacement has length zero*

知道为什么会发生这种情况并解决问题。 非常感谢 AA

**** parms matrix ****

 beta  alpha omega

1 0.005 0.005 0.990

2 0.240 0.005 0.755

3 0.490 0.005 0.505

4 0.740 0.005 0.255

5 0.990 0.005 0.005

6 0.005 0.250 0.745

7 0.240 0.250 0.510

8 0.490 0.250 0.260

9 0.740 0.250 0.010

10 0.005 0.500 0.495

11 0.240 0.500 0.260

12 0.490 0.500 0.010

13 0.005 0.750 0.245

14 0.240 0.750 0.010

15 0.005 0.990 0.005

**** CritMat矩阵****

 alpha  beta omega      T.64     T.128     T.256     T.512    T.1024

1 0.005 0.005 0.990 -2.956420 -2.919654 -2.921704 -2.886429 -2.879443

2 0.005 0.240 0.755 -2.959242 -2.917744 -2.923356 -2.885018 -2.881905

3 0.005 0.490 0.505 -2.959395 -2.915798 -2.927405 -2.886637 -2.885186

4 0.005 0.740 0.255 -2.957763 -2.912088 -2.934518 -2.890182 -2.889484

5 0.005 0.990 0.005 -2.937999 -2.857668 -2.864637 -2.819950 -2.820588

6 0.250 0.005 0.745 -2.987160 -2.986864 -2.897846 -2.865875 -2.911572

7 0.250 0.240 0.510 -3.034868 -2.979375 -2.924888 -2.875446 -2.898752

8 0.250 0.490 0.260 -3.052279 -2.995942 -2.969414 -2.926178 -2.918958

9 0.250 0.740 0.010 -3.197169 -3.263336 -3.258011 -3.202253 -3.248068

10 0.500 0.005 0.495 -3.031267 -3.038585 -2.936348 -2.921126 -2.908868

11 0.500 0.240 0.260 -3.142031 -3.086536 -3.026555 -3.079825 -2.871080

12 0.500 0.490 0.010 -3.383052 -3.410789 -3.431221 -3.367462 -3.332024

13 0.750 0.005 0.245 -3.209441 -3.170385 -3.112472 -3.141569 -2.925559

14 0.750 0.240 0.010 -3.452131 -3.517234 -3.428402 -3.477691 -3.178128

15 0.990 0.005 0.005 -3.427804 -3.491805 -3.298037 -3.290127 -3.087541

0 个答案:

没有答案