[R] apply command
Linlin Yan
yanlinlin82 at gmail.com
Tue Jan 19 13:07:08 CET 2010
I guess that the matrix dimension changed because matrix in R are
filled by columns. Since you try:
apply(b, 1, function(y) sort(y, na.last=F))
The second parameter make it scan matrix b row by row but store result
by columns, which make the result be a matrix transposed.
If you try:
apply(b, 2, function(y) sort(y, na.last=F))
The second parameter means scan column by column, and the result
matrix will have the same dimension with origin.
On Tue, Jan 19, 2010 at 6:31 PM, Tal Galili <tal.galili at gmail.com> wrote:
> Hello Marco
>
> What I would do, is use "t" to transpose the matrix.
> Why it is that apply switches the matrix, is beyond my knowledge - and I
> would love to read more informed replies.
>
> Tal
>
>
>
> ----------------Contact
> Details:-------------------------------------------------------
> Contact me: Tal.Galili at gmail.com | 972-52-7275845
> Read me: www.talgalili.com (Hebrew) | www.biostatistics.co.il (Hebrew) |
> www.r-statistics.com/ (English)
> ----------------------------------------------------------------------------------------------
>
>
>
>
> On Tue, Jan 19, 2010 at 12:27 PM, marco salvini <marco.salvini at gmail.com>wrote:
>
>> Can you please help on the issue?
>> I using the apply command on a matrix below the example:
>>
>> Create a vector
>> x =c(5, 3, 2:4, NA, 7, 3, 9, 2, 1, 5)
>>
>> create a matrix of 2 rows by 6 columns
>> b=matrix(x, 2,6)
>> print(b)
>> [,1] [,2] [,3] [,4] [,5] [,6]
>> [1,] 5 2 4 7 9 1
>> [2,] 3 3 NA 3 2 5
>>
>> using the command apply
>> print(apply(b, 1, function(y) sort(y, na.last=F)))
>>
>> the output is a matrix of 6 rows by 2 columns.
>> [,1] [,2]
>> [1,] 1 NA
>> [2,] 2 2
>> [3,] 4 3
>> [4,] 5 3
>> [5,] 7 3
>> [6,] 9 5
>>
>> As you can see in the example I start with a matrix of (2 by 6) and the
>> output of apply is a mtraxi of (6 by 2).
>> This is very strange because I was expecting as output a matrix of the same
>> dim (2 by 6) of the input matrix. I can solve this issues using an if
>> statment on the dim of the matrix but if I am using a square matrix I am
>> not
>> able to control if the result of the apply is correct.
>>
>> Do anyone find a solution to this issue?
>> thanks
>> Marco
>>
>> [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> 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.
>>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> 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