Hi guys, I have a very simple question. I'm trying to make multiple columns to a single column. For example, *ttx1* is a 46*72 matrix. so, I tried this. *d1=ttx1[,1] d2=ttx1[,2] ... d72=ttx1[,72]* now, d1, d2, ...,d72 become a 46*1 matrix. And then.. I tried.. *dd=rbind(d1, d2, ..., d72)* I thought *dd* should be 3312*1 matrix; but it becomes 72*46. I really wanted to make it a single column (3312*1). Do you know what is wrong in this code? Or, do you have a better idea in making multiple columns to a single column? Thank you so much. -Hyo [[alternative HTML version deleted]]
Hey Hyo, Rbind puts each object in a row, just use c(d1, d2, ... d72) to combine them all together. If you want it in a matrix matrix(c(d1,d2,...d72), ncol=1). Best, Josh On Sat, Mar 13, 2010 at 3:30 PM, Hyo Lee <totemo13 at gmail.com> wrote:> Hi guys, > > I have a very simple question. > I'm trying to make multiple columns to a single column. > > For example, > > *ttx1* is a 46*72 matrix. > > so, I tried this. > > *d1=ttx1[,1] > d2=ttx1[,2] > ... > d72=ttx1[,72]* > > now, d1, d2, ...,d72 become a 46*1 matrix. > And then.. I tried.. > > *dd=rbind(d1, d2, ..., d72)* > > I thought *dd* should be 3312*1 matrix; but it becomes 72*46. > I really wanted to make it a ?single column (3312*1). > > Do you know what is wrong in this code? Or, do you have a better idea in > making multiple columns to a single column? > > Thank you so much. > > -Hyo > > ? ? ? ?[[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. >-- Joshua Wiley Senior in Psychology University of California, Riverside http://www.joshuawiley.com/
Hi Hyo, how about as.vector(ttx1) or as.vector(t(ttx1))? HTH Stephan Hyo Lee schrieb:> Hi guys, > > I have a very simple question. > I'm trying to make multiple columns to a single column. > > For example, > > *ttx1* is a 46*72 matrix. > > so, I tried this. > > *d1=ttx1[,1] > d2=ttx1[,2] > ... > d72=ttx1[,72]* > > now, d1, d2, ...,d72 become a 46*1 matrix. > And then.. I tried.. > > *dd=rbind(d1, d2, ..., d72)* > > I thought *dd* should be 3312*1 matrix; but it becomes 72*46. > I really wanted to make it a single column (3312*1). > > Do you know what is wrong in this code? Or, do you have a better idea in > making multiple columns to a single column? > > Thank you so much. > > -Hyo > > [[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. >
On Mar 13, 2010, at 6:30 PM, Hyo Lee wrote:> Hi guys, > > I have a very simple question. > I'm trying to make multiple columns to a single column. > > For example, > > *ttx1* is a 46*72 matrix. > > so, I tried this. > > *d1=ttx1[,1] > d2=ttx1[,2] > ... > d72=ttx1[,72]* > > now, d1, d2, ...,d72 become a 46*1 matrix. > And then.. I tried.. > > *dd=rbind(d1, d2, ..., d72)* > > I thought *dd* should be 3312*1 matrix; but it becomes 72*46. > I really wanted to make it a single column (3312*1).> ttx1 <- matrix(1:3312, ncol=46) > str(ttx1) int [1:72, 1:46] 1 2 3 4 5 6 7 8 9 10 . It is as easy as applying the c() function: > str( c(ttx1) ) int [1:3312] 1 2 3 4 5 6 7 8 9 10 ... Well maybe only a vector. (as.vector would have done the same thing, or if you really want a one column matrix then ...) > dim(ttx1) <- c(3312,1) > str(ttx1) int [1:3312, 1] 1 2 3 4 5 6 7 8 9 10 ... Matrices in R are basically vectors anyway. Their dim attributes let matrix like operations get done but they remain vactors underneath.> > Do you know what is wrong in this code?This code gave you a vector rather than a one column matrix: d1=ttx1[, 1], since dimensions that are 1 get dropped by default. The only way to keep the result as a column matrix would be to use the drop=FALSE argument to "[": > d1=ttx1[,1, drop=FALSE] > d2=ttx1[,2, drop=FALSE] > str(rbind(d1,d2)) int [1:144, 1] 1 2 3 4 5 6 7 8 9 10 ...> Or, do you have a better idea in > making multiple columns to a single column?David Winsemius, MD West Hartford, CT