R/R basic

3개 이상의 데이터프레임을 한 번에 합치기 (join 함수)

시키테이 2021. 4. 26. 23:14
반응형

앞서 dplyr library에서 join 함수에 대해서 배웠는데, A라는 데이터프레임과 B라는 데이터프레임을 name이라는 공통된 칼럼으로 합친다고 하면 (inner_join을 써보겠습니다 여기선), inner_join(A, B, by="name") 뭐 이런 식으로 하면 되는데요. 만약 A, B, C, D, and, E라는 데이터프레임을 합친다고 하면 어떻게 한 줄로 만들 수 없을까요. list에 데이터프레임 이름을 넣어서 하는 방식도 있을 수 있겠지만, 여기서는 dplyr %>% 기능을 쓰면 편합니다. %>%라는 dplyr에서 자주 이용하는 기능인데요 쉽게 얘기해서 파이프 (pipe)같은 기능이라고 보시면 됩니다. 왼쪽 있는 걸 수행한 다음에 오른쪽 걸 수행해라 뭐 이런 식입니다. 이걸 결합하면 다음과 같이 써볼 수 있습니다. merged 라는 데이터프레임을 새로 만들었는데 A, B, C, D, 그리고 E를 모두 합친 (여기선 inner_join을 썼습니다) 결과입니다. 

 

merged<-inner_join(A, B, by=c("name"))%>%
	inner_join(., C, by=c("name")) %>%
  		inner_join(., D, by=c("name")) %>%
        		inner_join(., E, by=c("name")) 
반응형