[R] loop over matrix: subscript out of bounds
Maija Sirkjärvi
m@|j@@@|rkj@rv| @end|ng |rom gm@||@com
Wed Aug 8 12:03:11 CEST 2018
Thanks a lot ! That's it!
Maija
ke 8. elok. 2018 klo 12.53 Eric Berger (ericjberger using gmail.com) kirjoitti:
> You only need one "for loop"
>
> for(i in 2:nrow(myMatrix)) {
> myMatrix[i-1,i-1] = -1
> myMatrix[i-1,i] = 1
> }
>
> HTH,
> Eric
>
>
> On Wed, Aug 8, 2018 at 12:40 PM, Maija Sirkjärvi <
> maija.sirkjarvi using gmail.com> wrote:
>
>> Thanks!
>>
>> If I do it like this:
>>
>> myMatrix <- matrix(0,5,5*2-3)
>> print(myMatrix)
>> for(i in 2:nrow(myMatrix))
>> for(j in 2:ncol(myMatrix))
>> myMatrix[i-1,j-1] = -1
>> myMatrix[i-1,j] = 1
>> print(myMatrix)
>>
>> I get the following result:
>>
>> [,1] [,2] [,3] [,4] [,5] [,6] [,7]
>> [1,] -1 -1 -1 -1 -1 -1 0
>> [2,] -1 -1 -1 -1 -1 -1 0
>> [3,] -1 -1 -1 -1 -1 -1 0
>> [4,] -1 -1 -1 -1 -1 -1 1
>> [5,] 0 0 0 0 0 0 0
>>
>> However. The result that I would need to get would be like this:
>>
>> [,1] [,2] [,3] [,4] [,5] [,6] [,7]
>> [1,] -1 1 0 0 0 0 0
>> [2,] 0 -1 1 0 0 0 0
>> [3,] 0 0 -1 1 0 0 0
>> [4,] 0 0 0 -1 1 0 0
>> [5,] 0 0 0 0 -1 1 0
>>
>> I'd rather not create symmetric matrices as I would really like to learn
>> how to do this thing "the hard way" as I find matrix iteration to be quite
>> a basic procedure in everything I'm trying to do.
>>
>> Thanks again!
>> Maija
>>
>>
>>
>>
>> ti 7. elok. 2018 klo 17.37 Rui Barradas (ruipbarradas using sapo.pt) kirjoitti:
>>
>> > Hello,
>> >
>> > If it is not running as you want it, you should say what went wrong.
>> > Post the code that you have tried and the expected output, please.
>> > (In fact, the lack of expected output was the reason why my suggestion
>> > was completely off target.)
>> >
>> > Rui Barradas
>> >
>> > On 07/08/2018 09:20, Maija Sirkjärvi wrote:
>> > > Thanks, but I didn't quite get it. And I don't get it running as it
>> > should.
>> > >
>> > > ti 7. elok. 2018 klo 10.47 Martin Maechler (
>> maechler using stat.math.ethz.ch
>> > > <mailto:maechler using stat.math.ethz.ch>) kirjoitti:
>> > >
>> > >
>> > > > Thanks for help!
>> > > > However, changing the index from i to j for the column vector
>> > > changes the
>> > > > output. I would like the matrix to be the following:
>> > >
>> > > > -1 1 0 0 0 0 0
>> > > > 0 -1 1 0 0 0 0
>> > > > 0 0 -1 1 0 0 0
>> > > > .....
>> > > > etc.
>> > >
>> > > > How to code it?
>> > >
>> > > as Enrico Schumann showed you: Without any loop, a very nice
>> > > R-ish way (see his message)!
>> > >
>> > > Martin
>> > >
>> > > > Best,
>> > > > Maija
>> > >
>> >
>>
>> [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help using 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]]
More information about the R-help
mailing list