[R] logical operator for different dimensions
Petr Savicky
savicky at cs.cas.cz
Mon Feb 13 13:18:16 CET 2012
On Mon, Feb 13, 2012 at 02:08:52AM -0800, uday wrote:
>
> I have some dataset
>
>
> sci.pre <- 0.30 0.38 0.50 0.65 0.80 1.03 1.33 1.72
> 2.22
> 2.87 3.81 5.06 6.75 9.00 11.97 14.15 16.34 19.04
> 22.27 25.49 29.72 34.67 40.47 47.29 55.29 64.67 75.6
> 88.50 103.50 121.10 141.70 165.80 194.00 227.00 265.00 308.00
> 356.50 411.00 441.60 472.20 506.35 540.50 578.55 616.60 637.75
> 658.90 680.05 701.20 724.65 748.10 771.55 795.00 820.95 846.90
> 872.85 898.80 927.35 955.90 984.45 1013.00 ( length is 60)
>
> sci.avgkernal < - 0.30 0.38 0.50 0.65 0.80 1.03 1.33
> 1.72 2.22
> 2.87 3.81 5.06 6.75 9.00 11.97 14.15 16.34 19.04
> 22.27 25.49 29.72 34.67 40.47 47.29 55.29 64.67 75.65
> 88.50 103.50 121.10 141.70 165.80 194.00 227.00 265.00 308.00
> 356.50 411.00 441.60 472.20 506.35 540.50 578.55 616.60 637.75
> 658.90 680.05 701.20 724.65 748.10 771.55 795.00 820.95 846.90
> 872.85 898.80 927.35 955.90 984.45 1013.00 ( length is 60)
>
> pres.interptimes <- [,1] [,2] [,3] [,4] [,5]
> [,6] [,7] [,8]
> [1,] 1016.1267 1005.9741 989.9127 970.0237 945.6067 880.5082 790.4647
> 675.8315
> [2,] 875.6320 866.8767 853.0258 835.8741 814.8176 758.6784 681.0275
> 582.1712
> [3,] 996.0351 986.0758 970.3201 950.8098 926.8576 862.9984 774.6692
> 662.2184
> [4,] 996.0353 986.0760 970.3203 950.8100 926.8578 862.9987 774.6694
> 662.2187
> [5,] 1008.0222 997.9431 981.9978 962.2527 938.0123 873.3847 783.9926
> 670.1888
> [6,] 999.8343 989.8371 974.0214 954.4367 930.3932 866.2906 777.6247
> 664.7453
> [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16]
> [1,] 544.3248 410.3611 289.4130 237.2794 191.5622 152.3020 119.1842 91.68080
> [2,] 468.7636 353.2371 248.9350 203.9765 164.5513 130.6945 102.1346 78.41645
> [3,] 533.2153 401.8020 283.1566 232.0154 187.1686 148.6559 116.1686 89.18875
> [4,] 533.2155 401.8022 283.1568 232.0157 187.1688 148.6561 116.1688 89.18898
> [5,] 539.6334 406.6388 286.5657 234.8092 189.4227 150.4466 117.5683 90.26387
> [6,] 535.2505 403.3363 284.2386 232.9026 187.8848 149.2253 116.6141 89.53148
> [,17] [,18] [,19] [,20]
> [1,] 69.12170 50.81654 24.30808 0.8657024
> [2,] 58.96213 43.17629 20.31615 0.1001228
> [3,] 67.05913 49.10247 23.09867 0.1025881
> [4,] 67.05936 49.10270 23.09890 0.1028196
> [5,] 67.86797 49.69524 23.37854 0.1057444
> [6,] 67.31751 49.29240 23.18949 0.1057560 ( dim is 6 20)
>
> sci.prediff <- diff(sci.pre)
> sci.prediff <- c(sci.pre[1],sci.prediff)
> sum(sci.avgkernal*sci.prediff )/sum(sci.prediff )
> pres.interptimes <- pres.interptime[,-20]#skip last level
> tm3.avgkernal <-array(NA,c(length(1:nobs),19))
> for (k in 1:nobs){
> for (h in 1:19){
> sel <- sci.pre <= pres.interptimes[k,h] & sci.pre >
> pres.interptimes[k,h+1]
> tm3.avgkernal[k,h] <- sum((sci.avgkernal * sci.prediff)[sel]) /
> sum(sci.prediff[sel])
> }
> }
>
> after running code I get error
>
> Error: subscript out of bounds
>
> How to fix this error ?
I suspect that the error is generated at
pres.interptimes[k,h+1]
since h+1 goes up to 20 and pres.interptimes was restricted to 19
columns in
pres.interptimes <- pres.interptime[,-20]#skip last level
(assuming that "pres.interptime" is a typo and is "pres.interptimes"
in fact).
Hope this helps.
Petr Savicky.
More information about the R-help
mailing list