Hello Spse I have a matrix, say 1 2 3 4 5 6 7 8 9 and I would like to expand it by repeating rows within the matrix, to get, if the repeating factor is 2, say: 123 123 456 456 789 789 (or columnwise as well) . There must be a smart way of doing that? Many thanks Juhana Vartiainen juhana.vartiainen at labour.fi -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
Juhana Vartiainen wrote:> > Hello > > Spse I have a matrix, say > > 1 2 3 > 4 5 6 > 7 8 9 > > and I would like to expand it by repeating rows within the matrix, to > get, if the repeating factor is 2, say: > > 123 > 123 > 456 > 456 > 789 > 789 > > (or columnwise as well) . There must be a smart way of doing that?You could do something like that: R> mymatrix <- matrix(1:9, ncol=3) R> myindex <- rep(1:nrow(mymatrix), rep(2, nrow(mymatrix))) R> mymatrix[myindex,] [,1] [,2] [,3] [1,] 1 4 7 [2,] 1 4 7 [3,] 2 5 8 [4,] 2 5 8 [5,] 3 6 9 [6,] 3 6 9 Best, Z> Many thanks > > Juhana Vartiainen > juhana.vartiainen at labour.fi > > -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- > r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html > Send "info", "help", or "[un]subscribe" > (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch > _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
Juhana Vartiainen wrote:> > Spse I have a matrix, say...> and I would like to expand it by repeating rows within the matrix, to > get, if the repeating factor is 2, say:...> (or columnwise as well) . There must be a smart way of doing that?For your particular example the following works apply(matrix(1:9,ncol=3,byrow=T), 2, rep, rep(2,3)) You may also want to look at ?apply ?rep to adapt it to your needs. Sincerely, Diego Kuonen -- Dr. ?s sc. Diego Kuonen CEO & Applied Statistician Statoo Consulting, PO Box 107, 1015 Lausanne, Switzerland + Have you ever been Statooed? http://www.statoo.info + + Free Statooed newsletters: http://lists.statoo.com + -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
Juhana Vartiainen wrote:> > Hello > > Spse I have a matrix, say > > 1 2 3 > 4 5 6 > 7 8 9 > > and I would like to expand it by repeating rows within the matrix, to > get, if the repeating factor is 2, say: > > 123 > 123 > 456 > 456 > 789 > 789 > > (or columnwise as well) . There must be a smart way of doing that? > > Many thanksAn interesting exercise! I don't know if it is the smartest way, but the following line should do the trick for a matrix m: matrix(apply(m, 1, function(x) rep(x, 2)), , 4, byrow=TRUE) Uwe Ligges -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
On Thu, Mar 21, 2002 at 12:19:37PM +0200, Juhana Vartiainen wrote:> Hello > > Spse I have a matrix, say > > 1 2 3 > 4 5 6 > 7 8 9 > > and I would like to expand it by repeating rows within the matrix, to > get, if the repeating factor is 2, say: > > 123 > 123 > 456 > 456 > 789 > 789 > > (or columnwise as well) . There must be a smart way of doing that? > > Many thanks > > Juhana Vartiainen > juhana.vartiainen at labour.fi > > > -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- > r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html > Send "info", "help", or "[un]subscribe" > (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch > _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._I do not know if it is a smart way, but that's a way: m <- matrix(1:9, 3, 3, byrow=T) rep.fact <- 2 # repeating factor, say 2 mm <- matrix(rep(m, rep(rep.fact, length(m))), nrow(m)*rep.fact, ncol(m)) Hopin' it helps, Laurent -- -------------------------------------------------------------- Laurent Gautier CBS, Building 208, DTU PhD. Student D-2800 Lyngby,Denmark tel: +45 45 25 24 85 http://www.cbs.dtu.dk/laurent -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
>>>>> "Juhana" == Juhana Vartiainen <juhana.vartiainen at labour.fi> writes:Juhana> Hello Juhana> Spse I have a matrix, say Juhana> 1 2 3 Juhana> 4 5 6 Juhana> 7 8 9 Juhana> and I would like to expand it by repeating rows within the matrix, to Juhana> get, if the repeating factor is 2, say: Juhana> 123 Juhana> 123 Juhana> 456 Juhana> 456 Juhana> 789 Juhana> 789 Juhana> (or columnwise as well) . There must be a smart way of doing that? Juhana, you could try the kronecker product> z <- matrix(1:9,ncol=3,byrow=T) > z[,1] [,2] [,3] [1,] 1 2 3 [2,] 4 5 6 [3,] 7 8 9> kronecker(z, c(1,1))[,1] [,2] [,3] [1,] 1 2 3 [2,] 1 2 3 [3,] 4 5 6 [4,] 4 5 6 [5,] 7 8 9 [6,] 7 8 9 Cheers, Andreas -- Andreas Kiermeier Senior Biometrician BiometricsSA (Adelaide University/SARDI) GPO Box 397, Adelaide, SA 5001, Australia Email: Andreas.Kiermeier at adelaide.edu.au WWW: http://www.BiometricsSA.adelaide.edu.au/ Ph: +61 8 8303 6819 Fax: +61 8 8303 6761 ----------------------------------------------------------- This email message is intended only for the addressee(s) and contains information which may be confidential and/or copyright. If you are not the intended recipient please do not read, save, forward, disclose, or copy the contents of this email. If this email has been sent to you in error, please notify the sender by reply email and delete this email and any copies or links to this email completely and immediately from your system. No representation is made that this email is free of viruses. Virus scanning is recommended and is the responsibility of the recipient. -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._