Julia -
   Your subscript is out of range because in this loop:

    for (t in aeven2){
        Mhb0[,t] <- M[,(41+t)]-M[,(41-t)]
        Mhb1[,t] <- M[,(42+t)]-M[,(42-t)]
       }

t takes the values from 2 to 40 by 2, and you've
declared Mhb0 and Mhb1 as matrices with 20 columns.
So when t reaches 22, there is no corresponding column in Mhb0 or Mhb1.

                                        - Phil Spector
                                         Statistical Computing Facility
                                         Department of Statistics
                                         UC Berkeley
                                         spec...@stat.berkeley.edu




On Wed, 13 Oct 2010, Julia Lira wrote:


Dear Eriki and all



To run Quantile regression, it is necessary to install the following package in 
R:



install.packages("quantreg")



Then, write:



library(quantreg)



And the software will run.



rm(list=ls()) #remove almost everything in the memory

set.seed(180185)
nsim <- 10
mresultx <- matrix(-99, nrow=1000, ncol=nsim)
mresultb <- matrix(-99, nrow=1000, ncol=nsim)
N <- 200
I <- 5
taus <- c(0.480:0.520)
h <- c(1:20/1000)
alpha1 <- c(1:82)
aeven1 <- alpha1[2 * 1:41]
aodd1 <- alpha1[-2 * 1:41]
alpha2 <- c(1:40)
aeven2 <- alpha2[2 * 1:20]
#Create an object to hold results.
M <- matrix(0, ncol=82, nrow=nsim)
Mhb0 <- matrix(0, ncol=20, nrow=nsim)
Mhb1 <- matrix(0, ncol=20, nrow=nsim)
Mchb0 <- matrix(0, ncol=20, nrow=nsim)
Mchb1 <- matrix(0, ncol=20, nrow=nsim)
for (i in 1:nsim){
# make a matrix with 5 cols of N random uniform values
u <- replicate( 5, runif(N, 0, 1) )
# fit matrix u in another matrix of 1 column
mu <- matrix(u, nrow=1000, ncol=1)
# make auction-specific covariate
x <- runif(N, 0, 1)
mx <- matrix(rep(x,5), nrow=1000, ncol=1)
b0 <- matrix(rep(c(1),1000), nrow=1000, ncol=1)
#function for private cost
cost <- b0+b0*mx+mu
#bidding strategy
bid <- mx+((I+1)/I)+((I-1)/I)*mu
mresultb[,i] <- bid
mresultx[,i] <- mx
qf <- rq(formula = mresultb[,i] ~ mresultx[,i], tau= 480:520/1000)
# Storing result and does not overwrite prior values
M[i, ] <- coef(qf)
QI <- (1-0.5)/(I-1)
M50b0 <- M[,41]
M50b1 <- M[,42]
Mb0 <- matrix(M[,aodd1], nrow=nsim, ncol=20)
Mb1 <- matrix(M[,aeven1], nrow=nsim, ncol=20)
for (t in aeven2){
Mhb0[,t] <- M[,(41+t)]-M[,(41-t)]
Mhb1[,t] <- M[,(42+t)]-M[,(42-t)]
}
}



Here, the matrix M stores the result for all quantiles (by column) considering 
each simulation i (by row).

Then, I try to make some algebric simulations. I need to calculate Mhb0 such 
that for each value of t, the column called t in matrix Mhb0 will be the result 
of the subtraction of column (41-t) from the column (41+t) of the matrix M. To 
be more precise:



for t = 2, 4, 6,...



Mhb0 will be a matrix such that in the first column I will have {column (41+t) 
of M - column (41-t) of M}

This should be the loop, and I would have 20 column for all the even number 
from 2 to 82 (specified in aeven2).



Is that clear now? But the software says: "Error in Mhb0[, t] <- M[, (41 + t)] - M[, 
(41 - t)] :   subscript out of bounds"



What am I doing wrong?



Thanks a lot!



Julia



Date: Wed, 13 Oct 2010 13:53:28 -0500
From: er...@ccbr.umn.edu
To: julia.l...@hotmail.co.uk
CC: r-help@r-project.org
Subject: Re: [R] loop

Julia,

Can you provide a reproducible example? Your code calls the
'rq' function which is not found on my system.

Any paring down of the code to make it more readable would
help us help you better, too.


Julia Lira wrote:
Dear all,



I am trying to run a loop in my codes, but the software returns an error: "subscript 
out of bounds"



I dont understand exactly why this is happenning. My codes are the following:



rm(list=ls()) #remove almost everything in the memory

set.seed(180185)
nsim <- 10
mresultx <- matrix(-99, nrow=1000, ncol=nsim)
mresultb <- matrix(-99, nrow=1000, ncol=nsim)
N <- 200
I <- 5
taus <- c(0.480:0.520)
h <- c(1:20/1000)
codd <- 
c(1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71,73,75,77,79,81)
ceven <- 
c(2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82)
cevenl <- c(2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40)
#Create an object to hold results.
M <- matrix(0, ncol=82, nrow=nsim)
Mhb0 <- matrix(0, ncol=20, nrow=nsim)
Mhb1 <- matrix(0, ncol=20, nrow=nsim)
Mchb0 <- matrix(0, ncol=20, nrow=nsim)
Mchb1 <- matrix(0, ncol=20, nrow=nsim)
for (i in 1:nsim){
# make a matrix with 5 cols of N random uniform values
u <- replicate( 5, runif(N, 0, 1) )
# fit matrix u in another matrix of 1 column
mu <- matrix(u, nrow=1000, ncol=1)
# make auction-specific covariate
x <- runif(N, 0, 1)
mx <- matrix(rep(x,5), nrow=1000, ncol=1)
b0 <- matrix(rep(c(1),1000), nrow=1000, ncol=1)
#function for private cost
cost <- b0+b0*mx+mu
#bidding strategy
bid <- mx+((I+1)/I)+((I-1)/I)*mu
mresultb[,i] <- bid
mresultx[,i] <- mx
qf <- rq(formula = mresultb[,i] ~ mresultx[,i], tau= 480:520/1000)
# Storing result and does not overwrite prior values
M[i, ] <- coef(qf)
QI <- (1-0.5)/(I-1)
M50b0 <- M[,41]
M50b1 <- M[,42]
Mb0 <- matrix(M[,codd], nrow=nsim, ncol=20)
Mb1 <- matrix(M[,ceven], nrow=nsim, ncol=20)
for (t in cevenl){
Mhb0[ ,t] <- M[,(41+t)]-M[,(41-t)]
Mhb1[ ,t] <- M[,(42+t)]-M[,(42-t)]
}
}



Problem: the problem is in the red part of the loop. I want that the software 
takes the column (41+t) from the matrix called M and subtract from it the 
cloumn (41-t) of the same matrix M, such that the value of t varies according 
to the vector cevenl above.



Why is this looping not working?



Thanks in advance!!!



Julia

[[alternative HTML version deleted]]

______________________________________________
R-help@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.

        [[alternative HTML version deleted]]

______________________________________________
R-help@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.


______________________________________________
R-help@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.

Reply via email to