8

I have two lists of data.frames. Both lists have the same length and contain fitting data.frames in their according list elements. So the scenario looks like this

dfa = data.frame(a=1:3, b = letters[1:3])
dfb = data.frame(x=runif(3))
a = replicate(3, dfa, simplify = FALSE)
b = replicate(3, dfb, simplify = FALSE)

One obvious solution is:

lapply(seq_along(a), function(i) cbind(a[[i]], b[[i]]))

But I was wondering if their might be a better solution.

jakob-r
  • 6,824
  • 3
  • 29
  • 47

2 Answers2

16

You can use Map

Map(cbind, a, b)
akrun
  • 874,273
  • 37
  • 540
  • 662
4

You can use mapply :

mapply(cbind, a, b, SIMPLIFY=F)
user1981275
  • 13,002
  • 8
  • 72
  • 101
  • 3
    `Map` is kind of a wrapper for `mapply(FUN = f, ..., SIMPLIFY = FALSE)` Check the `Map` – akrun Mar 06 '15 at 12:10