DATOR


데이터가공 및 탐색No.1:Outer join


공통된 열로 데이터프레임을 병합

 

 

merge(x, y, by = intersect(names(x), names(y)), by.x=by, by.y=by, all=FALSE, all.x=all, all.y=all, sort = TRUE, suffixes = c(".x",".y"), incomparables = NULL, ...)

 

- x, y : data frames 또는 객체

- all : all.x=TRUE,
all.y=TRUE 의 간략 표현

(, all=TRUE)

- all.x : y에 매칭안되는 레코드를 추가하며,
y에 해당하는 속성은 값이 NA 로 채워짐
(, all.x=TRUE)

- all.y : all.x 와 유사

- sort : by 에 의해 지정된 속성으로 정렬됨

(, sort=TRU)

 

- suffixes : 연계 후 두 data frames 의 이름 고유성을 유지하기 위해 첨가되는 문자

(, suffixes=c(“.x”,“.y”)

 

- incomparables : 매칭하지 않을 값 지정.
입력값 형태는 vector Object

(, incomparables=c(“NA”, “NULL”))

 

- by, by.x, by.y : 조인에 사용할 속성(컬럼) 지정

by.x에는 왼쪽변수의 키속성

by.y에는 오른쪽변수의 키속성을 지정

all 옵션은 FALSE가 기본값으로 inner join을 수행하고,

all.x=TRUE이면 left join,

all.y=TRUE이면 right join,

all=TURE이면 outer join을 수행



 

>df_1 = data.frame(CustomerId = c(1:6), Product = c(rep("Computer", 3), rep("Radio", 3)))

>df_2 = data.frame(CustomerId = c(2, 4, 6), State = c(rep("Alabama", 2), rep("Ohio", 1)))

 

> merge(x = df_1, y = df_2, by = "CustomerId", all = TRUE)

merge_outerJoin.gif

Tag

Leave Comments


Profile

profileanalysis에 관련된 question에 대한 Answer