2017-12-24 17 views
0

데이터 프레임 목록이 2 개 있습니다. 각 목록은 24 dataframescbind 및 rbind 방법 2 데이터 프레임 목록

list1 <- (data1, data2, ..., data24) 
list2 <- (result1, result2, ...., result3) 

내가 원하는이있다 등등 result2와와 result1cbinddata1, data2합니다.

all1 <- cbind(data1, result1) 
all2 <- cbind(data2, result2) 
all.in <- rbind(all1, all2) 

방법 24 dataframes 효율적으로 그렇게 할 수있는 그런 다음 rbin 함께 같은 모든 dataframes을 거라고?

답변

4

아마 이런 짓을 할 것이다 :

l1 <- list(mtcars,mtcars) 
l2 <- list(mtcars,mtcars) 
do.call(rbind,mapply(FUN = cbind,l1,l2,SIMPLIFY = FALSE)) 

데이터 프레임이 매우 큰 경우에는 dplyr 또는 cbindrbind의 data.table 등가물로 전환 할 수 있습니다.

+0

대신 ? – Onyambu

+1

'do.call (rbind, Map (cbind, l1, l2))' – Onyambu

+0

@Onyambu 저는 옛날 학교이기 때문에 그것이 그 이유입니다. ;) – joran

2
tidyverse 문법에서

, dplyr::bind_rowsbind_cols 함께 목록을 결합하며, purrr::map_df 변형에 의해 호출된다 :`지도`를 사용하지 왜`단순화는 = FALSE '와`mapply`를 사용

library(tidyverse) 

l1 <- list(mtcars[1:2, 1, drop = FALSE], mtcars[3:4, 1, drop = FALSE]) 
l2 <- list(mtcars[1:2, 2:6], mtcars[3:4, 2:6]) 

map2_dfr(l1, l2, bind_cols) 
#> mpg cyl disp hp drat wt 
#> 1 21.0 6 160 110 3.90 2.620 
#> 2 21.0 6 160 110 3.90 2.875 
#> 3 22.8 4 108 93 3.85 2.320 
#> 4 21.4 6 258 110 3.08 3.215