Thank you for the answer Linlin, I am wondering, is there a way to change it so that R will fill matrix's by rows ?
Tal ----------------Contact Details:------------------------------------------------------- Contact me: tal.gal...@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 2:07 PM, Linlin Yan <yanlinli...@gmail.com> wrote: > 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.gal...@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.gal...@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.salv...@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@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@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@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.