[R] A matrix calculation

Erich Neuwirth erich.neuwirth at univie.ac.at
Sun Aug 23 23:35:18 CEST 2009


as.vector(t(mat[7:1,]))

On Aug 23, 2009, at 9:35 PM, David Winsemius wrote:

> There is another "matrix" strategy that succeeds, although it is  
> clearly less economical that the transpose approach:
>
> matrix(mat[7:1, ],  ncol=nrow(mat), byrow=TRUE)  # will transpose  
> the matrix
>
> I offer this only as a reminder that the byrow= parameter is  
> available when appropriate.
>
> -- 
> David.
>
>
> On Aug 23, 2009, at 3:18 PM, (Ted Harding) wrote:
>
>> 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
>>>> PLEASE do read the posting guide
>>>> 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
>>> PLEASE do read the posting guide
>>> 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 ------------------------------
>>
>> ______________________________________________
>> R-help at 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.
>
> David Winsemius, MD
> Heritage Laboratories
> West Hartford, CT
>
> ______________________________________________
> R-help at 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.
>




More information about the R-help mailing list