[R] Managing output

Rolf Turner r.turner at auckland.ac.nz
Thu Aug 27 00:15:10 CEST 2009


On 27/08/2009, at 10:06 AM, Noah Silverman wrote:

> Phil,
>
> Pre-allocation makes sense.  However, I don't know the size of my
> resulting vector when starting.  In my loop, I only pull off results
> that meet a certain threshold.
>
> -N
>

	I already basically told you how to handle this:

	x <- list()
	i <- 0
	for(item in list) {
		<calculate>
		if(threshold met) {
			i <- i+1
			x[[i]] <- <whatever>
		}
	}
	x <- unlist(x)

	cheers,

		Rolf Turner
		
> On 8/26/09 2:07 PM, Phil Spector wrote:
>> Noah -
>>    I would strongly advise you to preallocate the result vector
>> using numeric() or rep(), and then enter the values based on
>> subscripts.  Allowing objects to grow inside of loops is one of
>> the biggest mistakes an R programmer can make.
>>
>>                     - Phil Spector
>>                      Statistical Computing Facility
>>                      Department of Statistics
>>                      UC Berkeley
>>                      spector at stat.berkeley.edu
>>
>>
>> On Wed, 26 Aug 2009, Noah Silverman wrote:
>>
>>> The actually process is REALLY complicate, I just gave a simple  
>>> example
>>> for the list.
>>>
>>> I have a  lot of steps to process the data before I get a final
>>> "score".  (nested loops, conditional statements, etc.)
>>>
>>> Right now, I'm just printing the scores to the screen.  I'd like to
>>> accumulate them in some kind of data structure so I can either write
>>> them to disk or graph them.
>>>
>>> -N
>>>
>>> On 8/26/09 12:27 PM, Erik Iverson wrote:
>>>> How about ?append, but R is vectorized, so why not just
>>>>
>>>> result_list<- 2*item^2 , or for more complicated tasks, the
>>>> apply/sapply/lapply/mapply family of functions?
>>>>
>>>> In general, the "for" loop construct can be avoided so you don't
>>>> have to think about messy indexing.  What exactly are you trying  
>>>> to do?
>>>>
>>>> -----Original Message-----
>>>> From: r-help-bounces at r-project.org
>>>> [mailto:r-help-bounces at r-project.org] On Behalf Of Noah Silverman
>>>> Sent: Wednesday, August 26, 2009 2:20 PM
>>>> To: r help
>>>> Subject: [R] Managing output
>>>>
>>>> Hi,
>>>>
>>>>
>>>> Is there a way to build up a vector, item by item.  In perl, we can
>>>> "push" an item onto an array.  How can we can do this in R?
>>>> I have a loop that generates values as it goes.  I want to end up
>>>> with a
>>>> vector of all the loop results.
>>>>
>>>> In perl it woud be:
>>>>
>>>> for(item in list){
>>>>       result<- 2*item^2 (Or whatever formula, this is just a pseudo
>>>> example)
>>>>       Push(@result_list, result)  (This is the step I can't do  
>>>> in R)
>>>> }
>>>>
>>>>
>>>> Thanks!
>>>>
>>>> ______________________________________________
>>>> 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.
>>>
>
> 	[[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.


######################################################################
Attention:\ This e-mail message is privileged and confid...{{dropped:9}}




More information about the R-help mailing list