2015-03-06 3 views
3

У меня есть два списка data.frames. Оба списка имеют одинаковую длину и содержат соответствующие data.frames в своих элементах списка. Так сценарий выглядит следующим образомcbind два списка data.frames в новый список

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) 

Одно очевидное решение:

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

Но мне было интересно, если их может быть лучшим решением.

ответ

6

Вы можете использовать Map

Map(cbind, a, b) 
2

Вы можете использовать mapply:

mapply(cbind, a, b, SIMPLIFY=F) 
+3

'Map' является своего рода оберткой для' mapply (FUN = е, ..., упрощать = FALSE) 'Проверьте' Карта' – akrun

Смежные вопросы