[R] Make the output (from a Loop function) a Vector

Uwe Ligges ligges at statistik.tu-dortmund.de
Sun Dec 27 18:43:55 CET 2009



David Winsemius wrote:
> 
> On Dec 27, 2009, at 11:17 AM, Cat Morning wrote:
> 
>> Hi all,
>>
>> I have made a loop function which prints outputs. For example:
>>
>>  for (i in 1:5)
>> + print(i)
>> [1] 1
>> [1] 2
>> [1] 3
>> [1] 4
>> [1] 5
>>
>> However, I would like the output to given as a list or a vector, e..g 
>> c(1,2,3,4,5). Is it possible to do this?
> 
> This does suggest that you need to do some more studying of whatever 
> text you are using to learn R:
> 
>  > v <- c()
>  > for (i in 1:5) v <- c(v,i)
>  > v
> [1] 1 2 3 4 5
> 
> Or if you wanted to see the results with each iteration:
>  > v <- c()
>  > for (i in 1:5) print(v <- c(v,i))
> [1] 1
> [1] 1 2
> [1] 1 2 3
> [1] 1 2 3 4
> [1] 1 2 3 4 5
>>
>> (The function I am using outputs many 1000s of results, so is not easy 
>> to change to a vector manually.)


Completely right, but just for completeness let me add that the loop is 
slow using your allocation method (add more memory to v in each 
iteration), better allocate the whole vector v at first as in:

v <- numeric(5)
for (i in 1:5) print(v[i] <- i)

well, given your really need a loop ...

Best,
Uwe Ligges






> So you probably would not want the print() version.
>> Many Thanks.
>>
>>     [[alternative HTML version deleted]]
> 
> Set your mail-client up to send plain-text.
> 
> David Winsemius, MD
> Heritage Laboratories
> West Hartford, CT
> 
> ______________________________________________
> 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.




More information about the R-help mailing list