Re: [R] Fwd: Quadratic programming, for loop

2018-07-30 Thread Maija Sirkjärvi
Thanks a lot! I got the main part working (after a relaxing holiday).
However I still have some problems with the conditions. The looping is not
working properly, but this is not really an QP problem anymore. It's more
about that R runs the loop differently than c++, I guess.

Thanks a lot for help!
Maija

pe 29. kesäk. 2018 klo 13.29 Berwin A Turlach (berwin.turl...@gmail.com)
kirjoitti:

> G'day Maija,
>
> On Wed, 27 Jun 2018 08:48:08 +0300
> Maija Sirkjärvi  wrote:
>
> > Thanks for your reply! Unfortunately something is still wrong.
> >
> > After the transpose, dvec and Amat are still incompatible.
> >
> > > d <- -hsmooth
> > > dvec <- t(d)
> > > c <- dvec*Amat
> > Error in dvec * Amat : non-conformable arrays
>
> '*' in R is element-wise multiplication and '%*%' implements
> matrix/matrix (matrix/vector) multiplication as defined in matrix
> algebra.  I presume you want to use the latter operator here.
>
> > Moreover, I don't understand the following:
> >
> > > If dvec is of length *J*, then b will be of length J too.
> >
> > I believe the length of dvec comes from the number of variables and
> > the length of b from the number of constraints. In this case they are
> > not equal.
>
> As I said:
>
> > > solve.QP solves the quadratic program:
> > >  min(-d^T b + 1/2 b^T D b)
> > >where A^T b >= b_0.
>
> The minimisation is with respect to b.
>
> Note that the objective function contains the inner product of d
> (passed to dvec) and b, so d and b must have the same
> dimension/length.  b contains the parameters/variables over which you
> want to minimise.  b_0 (passed to bvec) depends on the number of
> constraints.
>
> Cheers,
>
> Berwin
>

[[alternative HTML version deleted]]

__
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.


Re: [R] Fwd: Quadratic programming, for loop

2018-06-29 Thread Berwin A Turlach
G'day Maija,

On Wed, 27 Jun 2018 08:48:08 +0300
Maija Sirkjärvi  wrote:

> Thanks for your reply! Unfortunately something is still wrong.
> 
> After the transpose, dvec and Amat are still incompatible.
> 
> > d <- -hsmooth
> > dvec <- t(d)
> > c <- dvec*Amat  
> Error in dvec * Amat : non-conformable arrays

'*' in R is element-wise multiplication and '%*%' implements
matrix/matrix (matrix/vector) multiplication as defined in matrix
algebra.  I presume you want to use the latter operator here.

> Moreover, I don't understand the following:
> 
> > If dvec is of length *J*, then b will be of length J too.  
> 
> I believe the length of dvec comes from the number of variables and
> the length of b from the number of constraints. In this case they are
> not equal.

As I said:

> > solve.QP solves the quadratic program:
> >  min(-d^T b + 1/2 b^T D b)
> >where A^T b >= b_0.

The minimisation is with respect to b.

Note that the objective function contains the inner product of d
(passed to dvec) and b, so d and b must have the same
dimension/length.  b contains the parameters/variables over which you
want to minimise.  b_0 (passed to bvec) depends on the number of
constraints.

Cheers,

Berwin

__
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.


Re: [R] Fwd: Quadratic programming, for loop

2018-06-26 Thread Maija Sirkjärvi
Thanks for your reply! Unfortunately something is still wrong.

After the transpose, dvec and Amat are still incompatible.

> d <- -hsmooth
> dvec <- t(d)
> c <- dvec*Amat
Error in dvec * Amat : non-conformable arrays

Moreover, I don't understand the following:

> If dvec is of length *J*, then b will be of length J too.

I believe the length of dvec comes from the number of variables and the
length of b from the number of constraints. In this case they are not
equal.

2018-06-26 15:01 GMT+03:00 Berwin A Turlach :

> G'day all,
>
> On Tue, 26 Jun 2018 11:16:55 +0300
> Maija Sirkjärvi  wrote:
>
> > It seems that my Amat and dvec are incompatible. Amat is a matrix of
> > zeros size: *2*J-3,J* and dvec is a vector of length *J*. There
> > should be no problem, but apparently there is. [...]
>
> solve.QP solves the quadratic program:
>  min(-d^T b + 1/2 b^T D b)
>where A^T b >= b_0.
>
> Note the transpose. :)
> If dvec is of length *J*, then b will be of length J too, and Amat
> should be Jx(2J-3) so that its transpose is (2j-3)xJ, making it
> compatible for matrix multiplication with b.
>
> Cheers,
>
> Berwin
>
> ---
> This email has been checked for viruses by Avast antivirus software.
> https://www.avast.com/antivirus
>
>

[[alternative HTML version deleted]]

__
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.


Re: [R] Fwd: Quadratic programming, for loop

2018-06-26 Thread Spencer Graves
  sos::findFn('{quadratic programming}') just identified 156 help 
pages in 68 packages containing the term "quadratic programming".  The 
function mentioned by Berwin Turlach, "solve.QP", is in package 
"quadprog", which has not been updated since 2016-12-20.  I've used 
qudprod successfully, but you might wish to consider some of the other 
options in package(s) more actively maintained.



  The "print" method for sos::findFn('{quadratic programming}') 
produced two sheets in my default browser.  The first of these contained 
156 rows for the 156 help pages in 68 packages, sorted by default by 
c('Count', 'MaxScore', 'TotalScore', 'Package', 'Score', 'Function').  
The second sheet listed only the 68 packages sorted by c('Count', 
'MaxScore', 'TotalScore', 'Package').  You can click on the column 
headers to get them sorted in different orders, if you want.



  "sos::findFn" is for me the fastest literature search for 
anything statistical.  I often write the list of help pages and the 
package summary to an Excel file using the "writeFindFn2xls" function, 
then annotate the package summary with other information to help me 
decide which package(s) and function(s) to try.



  Hope this helps.
  Spencer Graves, lead author of "sos"


On 2018-06-26 07:01, Berwin A Turlach wrote:

G'day all,

On Tue, 26 Jun 2018 11:16:55 +0300
Maija Sirkjärvi  wrote:


It seems that my Amat and dvec are incompatible. Amat is a matrix of
zeros size: *2*J-3,J* and dvec is a vector of length *J*. There
should be no problem, but apparently there is. [...]

solve.QP solves the quadratic program:
 min(-d^T b + 1/2 b^T D b)
where A^T b >= b_0.

Note the transpose. :)
If dvec is of length *J*, then b will be of length J too, and Amat
should be Jx(2J-3) so that its transpose is (2j-3)xJ, making it
compatible for matrix multiplication with b.

Cheers,

Berwin

---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus

__
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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 -- To UNSUBSCRIBE and more, see
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.


Re: [R] Fwd: Quadratic programming, for loop

2018-06-26 Thread Jeff Newmiller
The recommended (see the Posting Guide) way to resolve questions like this is 
to post a reproducible example so we can see the problem occur in our R 
session. There are a number of Internet resources that can help you get this 
right such as [1][2][3].

Note that one key to success is to learn how to configure your email program 
send plain text formatted email, since the mailing list will strip the HTML 
formatting anyway but this often leaves extraneous characters that make no 
sense to R. Most email attachments are removed, so keep including the code in 
the email body as you have been.

[1] 
http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example

[2] http://adv-r.had.co.nz/Reproducibility.html

[3] https://cran.r-project.org/web/packages/reprex/index.html (read the 
vignette) 


On June 26, 2018 1:34:31 AM PDT, "Maija Sirkjärvi"  
wrote:
>Thanks for the reply!
>
>dvec, thus hsmooth, has the same length J. It shouldn't be the problem.
>
>2018-06-26 11:24 GMT+03:00 Eric Berger :
>
>> The statement
>>
>> dvec <- -hsmooth
>>
>> looks like it might be the source of the problem, depending on what
>> hsmooth is.
>>
>>
>> On Tue, Jun 26, 2018 at 11:16 AM, Maija Sirkjärvi <
>> maija.sirkja...@gmail.com> wrote:
>>
>>> Thanks for the reply! I got that figured out, but still have some
>problems
>>> with the quadratic programming.
>>>
>>> It seems that my Amat and dvec are incompatible. Amat is a matrix of
>zeros
>>> size: *2*J-3,J* and dvec is a vector of length *J*. There should be
>no
>>>
>>> problem, but apparently there is. The piece of code looks like this:
>>>
>>> Dmat <- matrix(0,nrow= J, ncol=J)
>>> diag(Dmat) <- 1
>>> dvec <- rep(0,J)
>>> dvec
>>> dvec <- -hsmooth
>>> Aeq <- 0
>>> beq <- 0
>>> Amat <- matrix(0,2*J-3,J)
>>> bvec <- rep(0,2*J-3)
>>>
>>> for(j in 2:J)
>>> {
>>> Amat[j-1,j-1] = -1
>>> Amat[j-1,j] = 1
>>> bvec[j-1] = Delta1
>>> }
>>>
>>> for(j in 3:J)
>>> {
>>> Amat[J-1+j-2,j] = -1/(Q[j] - Q[j-1])
>>> Amat[J-1+j-2,j-1]= 1/(Q[j] - Q[j-1]) + 1/(Q[j-1] - Q[j-2])
>>> Amat[J-1+j-2,j-2]= -1/(Q[j-1] - Q[j-2])
>>> bvec[J-1+j-2]= Delta2
>>> }
>>>
>>> solution <- solve.QP(Dmat, dvec, Amat, bvec)
>>>
>>>
>>> 2018-06-14 15:52 GMT+03:00 Boris Steipe :
>>>
>>> > 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
>
>>> > 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
>:
>>> > > 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
>>> >
>>> > wrote:
>>> > > >
>>> > > >  Amat[J-1+j-2,j-1]= 1/(Q[j] - Q[j-1]) + 1/(Q[j-1] - Q[j-2])
>>> > >
>>> > >
>>> >
>>> >
>>>
>>> [[alternative HTML version deleted]]
>>>
>>> __
>>> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> PLEASE do read the posting guide http://www.R-project.org/posti
>>> ng-guide.html
>>> and provide commented, minimal, self-contained, reproducible code.
>>>
>>
>>
>
>   [[alternative HTML version deleted]]
>
>__
>R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
>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.

-- 
Sent from my phone. Please excuse my brevity.

__
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.


Re: [R] Fwd: Quadratic programming, for loop

2018-06-26 Thread Berwin A Turlach
G'day all,

On Tue, 26 Jun 2018 11:16:55 +0300
Maija Sirkjärvi  wrote:

> It seems that my Amat and dvec are incompatible. Amat is a matrix of
> zeros size: *2*J-3,J* and dvec is a vector of length *J*. There
> should be no problem, but apparently there is. [...]

solve.QP solves the quadratic program:
 min(-d^T b + 1/2 b^T D b) 
   where A^T b >= b_0.

Note the transpose. :)
If dvec is of length *J*, then b will be of length J too, and Amat
should be Jx(2J-3) so that its transpose is (2j-3)xJ, making it
compatible for matrix multiplication with b.

Cheers,

Berwin

---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus

__
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.


Re: [R] Fwd: Quadratic programming, for loop

2018-06-26 Thread Maija Sirkjärvi
Thanks for the reply!

dvec, thus hsmooth, has the same length J. It shouldn't be the problem.

2018-06-26 11:24 GMT+03:00 Eric Berger :

> The statement
>
> dvec <- -hsmooth
>
> looks like it might be the source of the problem, depending on what
> hsmooth is.
>
>
> On Tue, Jun 26, 2018 at 11:16 AM, Maija Sirkjärvi <
> maija.sirkja...@gmail.com> wrote:
>
>> Thanks for the reply! I got that figured out, but still have some problems
>> with the quadratic programming.
>>
>> It seems that my Amat and dvec are incompatible. Amat is a matrix of zeros
>> size: *2*J-3,J* and dvec is a vector of length *J*. There should be no
>>
>> problem, but apparently there is. The piece of code looks like this:
>>
>> Dmat <- matrix(0,nrow= J, ncol=J)
>> diag(Dmat) <- 1
>> dvec <- rep(0,J)
>> dvec
>> dvec <- -hsmooth
>> Aeq <- 0
>> beq <- 0
>> Amat <- matrix(0,2*J-3,J)
>> bvec <- rep(0,2*J-3)
>>
>> for(j in 2:J)
>> {
>> Amat[j-1,j-1] = -1
>> Amat[j-1,j] = 1
>> bvec[j-1] = Delta1
>> }
>>
>> for(j in 3:J)
>> {
>> Amat[J-1+j-2,j] = -1/(Q[j] - Q[j-1])
>> Amat[J-1+j-2,j-1]= 1/(Q[j] - Q[j-1]) + 1/(Q[j-1] - Q[j-2])
>> Amat[J-1+j-2,j-2]= -1/(Q[j-1] - Q[j-2])
>> bvec[J-1+j-2]= Delta2
>> }
>>
>> solution <- solve.QP(Dmat, dvec, Amat, bvec)
>>
>>
>> 2018-06-14 15:52 GMT+03:00 Boris Steipe :
>>
>> > 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 
>> > 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 :
>> > > 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 > >
>> > wrote:
>> > > >
>> > > >  Amat[J-1+j-2,j-1]= 1/(Q[j] - Q[j-1]) + 1/(Q[j-1] - Q[j-2])
>> > >
>> > >
>> >
>> >
>>
>> [[alternative HTML version deleted]]
>>
>> __
>> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide http://www.R-project.org/posti
>> ng-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>
>

[[alternative HTML version deleted]]

__
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.


Re: [R] Fwd: Quadratic programming, for loop

2018-06-26 Thread Eric Berger
 The statement

dvec <- -hsmooth

looks like it might be the source of the problem, depending on what hsmooth
is.


On Tue, Jun 26, 2018 at 11:16 AM, Maija Sirkjärvi  wrote:

> Thanks for the reply! I got that figured out, but still have some problems
> with the quadratic programming.
>
> It seems that my Amat and dvec are incompatible. Amat is a matrix of zeros
> size: *2*J-3,J* and dvec is a vector of length *J*. There should be no
> problem, but apparently there is. The piece of code looks like this:
>
> Dmat <- matrix(0,nrow= J, ncol=J)
> diag(Dmat) <- 1
> dvec <- rep(0,J)
> dvec
> dvec <- -hsmooth
> Aeq <- 0
> beq <- 0
> Amat <- matrix(0,2*J-3,J)
> bvec <- rep(0,2*J-3)
>
> for(j in 2:J)
> {
> Amat[j-1,j-1] = -1
> Amat[j-1,j] = 1
> bvec[j-1] = Delta1
> }
>
> for(j in 3:J)
> {
> Amat[J-1+j-2,j] = -1/(Q[j] - Q[j-1])
> Amat[J-1+j-2,j-1]= 1/(Q[j] - Q[j-1]) + 1/(Q[j-1] - Q[j-2])
> Amat[J-1+j-2,j-2]= -1/(Q[j-1] - Q[j-2])
> bvec[J-1+j-2]= Delta2
> }
>
> solution <- solve.QP(Dmat, dvec, Amat, bvec)
>
>
> 2018-06-14 15:52 GMT+03:00 Boris Steipe :
>
> > 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 
> > 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 :
> > > 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 
> > wrote:
> > > >
> > > >  Amat[J-1+j-2,j-1]= 1/(Q[j] - Q[j-1]) + 1/(Q[j-1] - Q[j-2])
> > >
> > >
> >
> >
>
> [[alternative HTML version deleted]]
>
> __
> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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 -- To UNSUBSCRIBE and more, see
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.


Re: [R] Fwd: Quadratic programming, for loop

2018-06-26 Thread Maija Sirkjärvi
Thanks for the reply! I got that figured out, but still have some problems
with the quadratic programming.

It seems that my Amat and dvec are incompatible. Amat is a matrix of zeros
size: *2*J-3,J* and dvec is a vector of length *J*. There should be no
problem, but apparently there is. The piece of code looks like this:

Dmat <- matrix(0,nrow= J, ncol=J)
diag(Dmat) <- 1
dvec <- rep(0,J)
dvec
dvec <- -hsmooth
Aeq <- 0
beq <- 0
Amat <- matrix(0,2*J-3,J)
bvec <- rep(0,2*J-3)

for(j in 2:J)
{
Amat[j-1,j-1] = -1
Amat[j-1,j] = 1
bvec[j-1] = Delta1
}

for(j in 3:J)
{
Amat[J-1+j-2,j] = -1/(Q[j] - Q[j-1])
Amat[J-1+j-2,j-1]= 1/(Q[j] - Q[j-1]) + 1/(Q[j-1] - Q[j-2])
Amat[J-1+j-2,j-2]= -1/(Q[j-1] - Q[j-2])
bvec[J-1+j-2]= Delta2
}

solution <- solve.QP(Dmat, dvec, Amat, bvec)


2018-06-14 15:52 GMT+03:00 Boris Steipe :

> 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 
> 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 :
> > 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 
> wrote:
> > >
> > >  Amat[J-1+j-2,j-1]= 1/(Q[j] - Q[j-1]) + 1/(Q[j-1] - Q[j-2])
> >
> >
>
>

[[alternative HTML version deleted]]

__
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.


Re: [R] Fwd: Quadratic programming, for loop

2018-06-14 Thread Boris Steipe
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  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 :
> 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  wrote:
> > 
> >  Amat[J-1+j-2,j-1]= 1/(Q[j] - Q[j-1]) + 1/(Q[j-1] - Q[j-2])
> 
> 

__
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.


Re: [R] Fwd: Quadratic programming, for loop

2018-06-13 Thread Boris Steipe
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  wrote:
> 
>  Amat[J-1+j-2,j-1]= 1/(Q[j] - Q[j-1]) + 1/(Q[j-1] - Q[j-2])

__
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.