Home > Software engineering >  Stack a dataframe on itself multiple times in R?
Stack a dataframe on itself multiple times in R?

Time:09-15

I would like to stack a dataframe 100 times on itself, with an additional column indicating the iteration number, similar to what dplyr::bind_rows(..., .id = "id") does. Or is there a way I can save 100 times my dataframe into a single list and then use data.table::rbindlist()?

library(dplyr)
bind_rows(iris, iris, .id = "id") #This stacks the data only twice
library(data.table)
rbindlist(list(iris, iris), idcol = "id")

CodePudding user response:

We could use replicate to return the datasets in a list and then use bind_rows or rbindlist

library(dplyr)
n <- 5
replicate(n, iris, simplify = FALSE) %>%
    bind_rows(.id = 'id')

Or another option is purrr::rerun

library(purrr)
n %>%
   rerun(iris) %>% 
   bind_rows(.id = 'id')
  •  Tags:  
  • r
  • Related