[R] loop to subtract arrays / error

Rui Barradas ruipbarradas at sapo.pt
Mon Nov 19 11:05:11 CET 2012


Hello,

Try the following.

Xjj <- matrix(nrow = 101, ncol = 1000)
for (i in 1:dim(Vsimr)[2]) {
     Xjj[, i] <- Vobsr - Vsimr[, i]
}

Hope this helps,

Rui Barradas
Em 19-11-2012 01:41, iembry escreveu:
> Hi everyone, I am having trouble with creating a loop to subtract arrays.
>
> In R, this is what I have done:
>> Vobsr <- read.csv("Observed_Flow.csv", header = TRUE, sep =",") # see data
>> below
>> Vsimr <- read.csv("1000Samples_Vsim.csv", header = TRUE, sep =",") # see
>> data below
>> Vobsr <- as.matrix(Vobsr[,-1]) # remove column 1 from analysis thus Vobsr
>> is 101x1 double matrix (column 1 is date information)
>> Vsimr <- as.matrix(Vsimr[,-1]) # remove column 1 from analysis thus Vsimr
>> is 101x1000 double matrix (column 1 is date information)
>> Vobsr - Vsimr
> Error in Vobsr - Vsimr : non-conformable arrays
>
> Thus I attempted to create the loop below to perform the subtraction
> operation for each of the 1000 columns.
>
>> dim(Vsimr)[2]
> [1] 1000
>
>> for (i in 1:dim(Vsimr)[2]) {
>      Xjj <- Vobsr - Vsimr[,i]
> }
> Xjj is a 101x1 double matrix rather than a 101X1000 double matrix
>
> How can I subtract each column of Vsimr from the single column of Vobsr over
> the 1000 columns present?
>
> I would like to thank each of you in advance for your assistance.
>
> How can I subtract each column of Vsimr from the single column of Vobsr over
> the 1000 columns present?
>
> I would like to thank each of you in advance for your assistance.
>
>
> I am including some of the data from the files that I am operating on below:
> 1 column of Observed_Flow.csv
> 81.071
> 73.187
> 66.991
> 62.482
> 59.662
> 58.529
> 59.085
> 61.328
> 65.259
> 70.878
> 78.184
> 87.179
> 97.862
> 110.23
> 124.29
> 140.08
> 157.57
> 176.76
> 197.63
> 220.18
> 244.4
> 270.31
> 297.88
> 327.14
> 358.09
> 390.71
> 425.03
> 461.03
> 498.72
> 538.09
> 579.16
> 621.91
> 666.35
> 712.48
> 760.29
> 809.8
> 860.99
> 913.87
> 968.44
> 1024.7
> 1082.6
> 1142.3
> 1203.6
> 1266.6
> 1331.3
> 1397.7
> 1465.7
> 1535.5
> 1606.9
> 1680.1
> 1754.9
> 1831.4
> 1907.1
> 1981.9
> 2055.9
> 2129
> 2201.3
> 2272.7
> 2343.3
> 2413.1
> 2482
> 2550.1
> 2617.3
> 2683.7
> 2749.2
> 2813.9
> 2877.8
> 2940.8
> 3003
> 3064.3
> 3124.8
> 3184.4
> 3243.2
> 3301.1
> 3358.2
> 3414.5
> 3469.9
> 3524.4
> 3578.2
> 3631
> 3683.1
> 3734.3
> 3784.6
> 3834.1
> 3882.8
> 3930.6
> 3977.6
> 4023.7
> 4069
> 4113.4
> 4157
> 4199.8
> 4241.7
> 4282.7
> 4323
> 4362.3
> 4400.9
> 4438.6
> 4475.4
> 4511.4
> 4546.6
>
>
> 2 columns of 1000 columns of 1000Samples_Vsim.csv
> 81.07 81.07
> 73.19 73.19
> 65.81 67.16
> 58.93 63
> 52.55 60.7
> 46.68 60.25
> 41.31 61.67
> 36.44 64.95
> 32.08 70.08
> 28.22 77.08
> 24.86 85.94
> 22.01 96.65
> 19.65 109.23
> 17.8 123.67
> 16.46 139.96
> 15.61 158.12
> 15.27 178.14
> 15.43 200.02
> 16.1 223.75
> 17.27 249.35
> 18.94 276.81
> 21.11 306.13
> 23.79 337.31
> 26.97 370.34
> 30.65 405.24
> 34.84 442
> 39.52 480.62
> 44.71 521.1
> 50.41 563.44
> 56.61 607.64
> 63.31 653.7
> 70.51 701.62
> 78.21 751.4
> 86.42 803.04
> 95.13 856.53
> 104.35 911.89
> 114.06 969.11
> 124.28 1028.2
> 135.01 1089.1
> 146.23 1151.9
> 157.96 1216.6
> 170.19 1283.1
> 182.93 1351.5
> 196.16 1421.7
> 209.9 1493.8
> 224.15 1567.8
> 238.89 1643.6
> 254.14 1721.3
> 269.89 1800.8
> 286.15 1882.2
> 302.91 1965.5
> 320.17 2050.6
> 337.18 2134.8
> 353.93 2218.1
> 370.44 2300.4
> 386.69 2381.8
> 402.7 2462.3
> 418.45 2541.8
> 433.95 2620.4
> 449.2 2698.1
> 464.2 2774.9
> 478.94 2850.7
> 493.44 2925.6
> 507.68 2999.5
> 521.67 3072.6
> 535.41 3144.7
> 548.9 3215.8
> 562.14 3286.1
> 575.12 3355.4
> 587.86 3423.8
> 600.34 3491.2
> 612.57 3557.7
> 624.55 3623.3
> 636.28 3688
> 647.76 3751.7
> 658.98 3814.5
> 669.96 3876.4
> 680.68 3937.3
> 691.15 3997.3
> 701.37 4056.4
> 711.34 4114.6
> 721.06 4171.8
> 730.52 4228.1
> 739.74 4283.4
> 748.7 4337.9
> 757.41 4391.4
> 765.87 4443.9
> 774.08 4495.6
> 782.04 4546.3
> 789.74 4596.1
> 797.2 4644.9
> 804.4 4692.8
> 811.35 4739.8
> 818.05 4785.9
> 824.5 4831
> 830.7 4875.2
> 836.64 4918.5
> 842.33 4960.8
> 847.78 5002.2
> 852.97 5042.7
> 857.91 5082.3
>
>
>
> --
> View this message in context: http://r.789695.n4.nabble.com/loop-to-subtract-arrays-error-tp4650001.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.




More information about the R-help mailing list