Hello fellow R sufferers, Is there a way to perform an appending operation in place? Currently, the way my pseudo-code goes is like this for (i in 1:1000) { if (some condition) { newRow <- myFunction(myArguments) X <- rbind(X, newRow) # <- this is the bottleneck!! } } As you can see, it works but as the matrix X gets the size of a few million rows, the code runs very slow. I am looking for something like the natively "in place" appending python function called "append()" or the perl function "push". "In-place" operations would allow me to do (in pseudocode) for (i in 1:1000) { if (some condition) { newRow <- myFunction(myArguments) append(X, newRow) } } You see? I do not have to call and re-assign the giant X matrix every loop cycle. Any help? Thank you, Your culpritNr1 -- View this message in context: http://www.nabble.com/R%3A-%22in-place%22-appending-to-a-matrix.-tp20001258p20001258.html Sent from the R help mailing list archive at Nabble.com.
Create an empty matrix first and then fill it in. That will avoid the overhead in repeatedly expanding it. If you don't know how many rows then make it 1000 rows and remove the unused ones once finished. On Wed, Oct 15, 2008 at 4:05 PM, culpritNr1 <ig2ar-saf1 at yahoo.co.uk> wrote:> > Hello fellow R sufferers, > > Is there a way to perform an appending operation in place? > > Currently, the way my pseudo-code goes is like this > > for (i in 1:1000) { > if (some condition) { > newRow <- myFunction(myArguments) > X <- rbind(X, newRow) # <- this is the bottleneck!! > } > } > > As you can see, it works but as the matrix X gets the size of a few million > rows, the code runs very slow. > > I am looking for something like the natively "in place" appending python > function called "append()" or the perl function "push". "In-place" > operations would allow me to do (in pseudocode) > > for (i in 1:1000) { > if (some condition) { > newRow <- myFunction(myArguments) > append(X, newRow) > } > } > > You see? I do not have to call and re-assign the giant X matrix every loop > cycle. > > Any help? > > Thank you, > > Your culpritNr1 > > > > -- > View this message in context: http://www.nabble.com/R%3A-%22in-place%22-appending-to-a-matrix.-tp20001258p20001258.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. >
that's extremely rude , especially to all the people who made and make R what it is. If you don't like R, noone is forcing you to use it. On Thu, Oct 16, 2008 at 5:50 PM, repkakala Gazeta.pl wrote:> On 10/16/2008 10:50 AM, culpritNr1 wrote: >> >>> >>> Now, modern high level languages like the continually improving R, >> >> > " > References: > > Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) _The New S > Language_. Wadsworth & Brooks/Cole. > " > > This is most important reference in many help pages in R. > Modern Language, haha. Old crap, not a modern language. > > \misiek > > [[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.