[R] Construct a data.frame in a FOR-loop

Kristel Joossens kristel.joossens at econ.kuleuven.ac.be
Sun Dec 4 18:39:35 CET 2005


I think I know what you would like to have.

Sometyhing you can do
R> res<-vector("list",5)
R> for (i in 1:5)
R> {...
R>   res[[i]]=my_code(i)
R> }

As an easy example:
R> res<-vector("list",5)
R> for (i in 1:5){res[[i]]=1:i}
R> ex
[[1]]
[1] 1

[[2]]
[1] 1 2

[[3]]
[1] 1 2 3

[[4]]
[1] 1 2 3 4

[[5]]
[1] 1 2 3 4 5


Best regards,
Kristel

-- 
__________________________________________
Kristel Joossens        Ph.D. Student
Research Center ORSTAT  K.U. Leuven
Naamsestraat 69         Tel: +32 16 326929
3000 Leuven, Belgium    Fax: +32 16 326732
E-mail:  Kristel.Joossens at econ.kuleuven.be
http://www.econ.kuleuven.be/public/ndbae49




Serguei Kaniovski wrote:
> Hi, thanks for your reply. What I have is a large chunk of code 
> "my_code" that is controlled by a single FOR-loop. The code computes a 
> single value my_code(i) depending on the loop counter i. What I would 
> like to do is to organize the input and the output into a table so that 
> it can be e.g. plotted, for example in this format
> 
> input_i        i=1        i=2        i=3    ....
>         my_code(1)    my_code(2)    my_code(3)
> ...
> 
> where my_code(1) is the output of a single iteration, itself a column 
> vector of variable size N(i)
> 
> Serguei
> 
> Kristel Joossens schrieb:
> 
>> Serguei Kaniovski wrote:
>>
>>> Say I have a FOR-loop for computing powers (just a trivial example)
>>> for(i in 1:5)
>>> {
>>>     x<-i^2
>>>     y<-i^3
>>> }
>>>
>>> How can I create a data.frame and a 3D plot of (i,x(i),y(i)), i.e. 
>>> for each iteration
>>
>>
>>
>> First of all you can easily avoid for-loops in such examples.
>> You can better work with matrices, so just do
>> R> i <- 1:5
>> R> x <- i^2
>> R> y <- i^3
>>
>> Second, maybe very interesting, if you want to look somethimg up and 
>> do not know the R-command. You can always try with RSiteSearch("...").
>>
>> I'm not sure what you mean with ``construct a data.frame in a for 
>> loop''. As far as I know you can better first do the loop and 
>> construct at the end the data.frame. Anyway, to create a data.frame, 
>> you can e.g. do
>> R> resdf <- as.data.frame(cbind(i,x,y))
>>
>> To create 3D-plot there are seeral possibilities.
>> Try   ?persp (for surfaces)
>> or you can download the scatterplot3d package available on CRAN (for 
>> points and lines).
>>
>> Hopefully this helps,
>> Good luck,
>> Kristel



Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm




More information about the R-help mailing list