Storing loop output in a dataframe in R

33,117

Solution 1

You can begin with y as an empty data.frame as in: y <- data.frame(). Then bind the rows to this data.frame at the end of each iteration as in: y <- rbind.data.frame(y, [output of one interation]). But you can also make this a little more tight by wrapping it in an lapply and do.call as in:

y <- do.call(rbind.data.frame,
             lapply(unique(x$id),
                    function(i){
       ...;
       return([output of one iteration])}))

Solution 2

You can do this simply by

y  <- NULL;
for (i in unique(x$id))
 { 
  tmp <- [output of one iteration]
  y <- rbind(y, tmp)
 }
Share:
33,117
ijaz ahamed
Author by

ijaz ahamed

Updated on August 07, 2020

Comments

  • ijaz ahamed
    ijaz ahamed over 3 years

    I want to know how to store the values of the complete loop output into a single dataframe in R. For example,

    for(i in unique(x$id)){
        .
        .
        .
        y=output of one iteration}
    

    At the end of each iteration, I am getting the output in y. But I want to store output of all iterations into y. How do I do that in R?