# [R] A matrix calculation

(Ted Harding) Ted.Harding at manchester.ac.uk
Sun Aug 23 21:18:01 CEST 2009

```The problem with David's proposal is revealed by:

mat[7:1,]
#      [,1] [,2] [,3]
# [1,]    7   14   21
# [2,]    6   13   20
# [3,]    5   12   19
# [4,]    4   11   18
# [5,]    3   10   17
# [6,]    2    9   16
# [7,]    1    8   15

which simply reverses the rows. Then:

c(mat[7:1,])
# [1]  7  6  5  4  3  2  1 14 13 12 11 10  9  8 21 20 19 18 17 16 15

since a matrix is stored "by columns" -- i.e. as a vector with its
elements ordered down each column, per col1 then col2 then ...

And the following won't work either:

mat[,1:3]
#      [,1] [,2] [,3]
# [1,]    1    8   15
# [2,]    2    9   16
# [3,]    3   10   17
# [4,]    4   11   18
# [5,]    5   12   19
# [6,]    6   13   20
# [7,]    7   14   21

which is simply the original matrix, and hence:

c(mat[,1:3])
# [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21

for the same reson as before. What you need to do is based on the
following:

t(mat[7:1,])
#      [,1] [,2] [,3] [,4] [,5] [,6] [,7]
# [1,]    7    6    5    4    3    2    1
# [2,]   14   13   12   11   10    9    8
# [3,]   21   20   19   18   17   16   15

which now has the elements (down the columns) in the order you want.
So:

c(t(mat[7:1,]))
# [1]  7 14 21  6 13 20  5 12 19  4 11 18  3 10 17  2  9 16  1  8 15

As desired.
Ted.

On 23-Aug-09 18:53:38, Bogaso wrote:
>
> No no, I actually want following result :
>
> 7,   14,   21, 6,   13,   20, 5,   12,   19,............
>
>
>
>
> David Winsemius wrote:
>>
>>
>> On Aug 23, 2009, at 2:37 PM, Bogaso wrote:
>>
>>>
>>> I have suppose a matrix like that
>>>
>>>> mat <- matrix(1:21, 7)
>>>> mat
>>>     [,1] [,2] [,3]
>>> [1,]    1    8   15
>>> [2,]    2    9   16
>>> [3,]    3   10   17
>>> [4,]    4   11   18
>>> [5,]    5   12   19
>>> [6,]    6   13   20
>>> [7,]    7   14   21
>>>
>>>> From this matrix, I want to create a vector like tha :
>>>
>>> c(mat[7,], mat[6,], mat[5,], ....., mat[1,])
>>>
>>> Can anyone please guide me, how to do that?
>>
>>   c( mat[7:1,] )
>>
>> # [1]  7  6  5  4  3  2  1 14 13 12 11 10  9  8 21 20 19 18 17 16 15
>>
>> --
>>
>> David Winsemius, MD
>> Heritage Laboratories
>> West Hartford, CT
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>>
>
> --
> View this message in context:
> http://www.nabble.com/A-matrix-calculation-tp25106048p25106224.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
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

--------------------------------------------------------------------
E-Mail: (Ted Harding) <Ted.Harding at manchester.ac.uk>
Fax-to-email: +44 (0)870 094 0861
Date: 23-Aug-09                                       Time: 20:17:58
------------------------------ XFMail ------------------------------

```