[R] Fwd: Quadratic programming, for loop

Boris Steipe bor|@@@te|pe @end|ng |rom utoronto@c@
Thu Jun 14 14:52:53 CEST 2018


Keep replies on list please.

You are not accessing a value from vector Q if you access the zero'th element!
R > Q <- c(3, 5, 8)
R > Q[0]
numeric(0)
R > Q[1]
[1] 3
R > Q[2]
[1] 5

In the first iteration of the loop j is 2 thus j-2 is 0 and that's the reason for the error message: you are trying to replace a matrix element with a zero-length (i.e. unassigned) numeric value. Perhaps, in your mind, you are mixing up the index of a vector element and its value? If you need two zeros to start your vector, do something like

R > Q <- c(0, 0, Q)
R > Q
[1] 0 0 3 5 8


Clear now?
B.



> On 2018-06-14, at 01:22, Maija Sirkjärvi <maija.sirkjarvi using gmail.com> wrote:
> 
> Many thanks for your message! 
> 
> The thing is that I need  Q[j-2] to be zero for the first two iterations because I don't have those values (J starts from 1). Do you have any idea how to do it?
> 
> Thanks again!
> 
> Maija
> 
> 2018-06-13 15:52 GMT+03:00 Boris Steipe <boris.steipe using utoronto.ca>:
> Q[j-2] gives you Q[0] in your first inner loop iteration.
> R arrays start at one. 
> 
> B.
> 
> 
> > On 2018-06-13, at 07:21, Maija Sirkjärvi <maija.sirkjarvi using gmail.com> wrote:
> > 
> >  Amat[J-1+j-2,j-1]= 1/(Q[j] - Q[j-1]) + 1/(Q[j-1] - Q[j-2])
> 
> 




More information about the R-help mailing list