R에서 행 수가 다른 두 데이터 프레임 병합
-
full_join
함수를 사용하여 행 수가 다른 두 R 데이터 프레임 병합 -
left_join
함수를 사용하여 행 수가 다른 두 R 데이터 프레임 병합 -
right_join
함수를 사용하여 행 수가 다른 두 R 데이터 프레임 병합
이 기사에서는 R에서 행 수가 다른 두 데이터 프레임을 병합하는 여러 방법을 보여줍니다.
full_join
함수를 사용하여 행 수가 다른 두 R 데이터 프레임 병합
full_join
은dplyr
패키지의 일부이며 행 수가 다른 두 데이터 프레임을 병합하는 데 사용할 수 있습니다. 이 함수는 병합 할 데이터 프레임을 처음 두 인수로 취하고 첫 번째 인수와 동일한 유형의 객체를 반환합니다. 이 함수는tibble
또는 lazy 데이터 프레임과 같은 데이터 프레임 확장 유형에서 작동 할 수 있습니다. full_join
은 두 데이터 프레임 인수에서 모든 행과 열을 추출합니다. 일치하는 값이 없으면 ‘NA’-로 요소를 채 웁니다.
library(dplyr)
v1 <- c(1.1, 1.2, 1.3, 2.1, 2.2, 2.3)
v2 <- c(11, 12, 13, 21, 22, 23)
df1 <- data.frame(v1, v2)
v1 <- c(9.1, 9.2, 9.3, 9.1, 9.2, 9.3, 9.3, 9.2, 9.1)
v2 <- c(101, 102, 103, 201, 202, 203, 204, 403, 404)
wday <- factor(c("Wed", "Thu", "Mon", "Wed", "Thu", "Fri", "Mon", "Tue", "Wed"))
df2 <- data.frame(v1, v2, wday)
dff <- df1 %>% full_join(df2)
dff
v1 v2 wday
1 1.1 11 <NA>
2 1.2 12 <NA>
3 1.3 13 <NA>
4 2.1 21 <NA>
5 2.2 22 <NA>
6 2.3 23 <NA>
7 9.1 101 Wed
8 9.2 102 Thu
9 9.3 103 Mon
10 9.1 201 Wed
11 9.2 202 Thu
12 9.3 203 Fri
13 9.3 204 Mon
14 9.2 403 Tue
15 9.1 404 Wed
left_join
함수를 사용하여 행 수가 다른 두 R 데이터 프레임 병합
left_join
은dplyr
패키지의 또 다른 방법입니다. full_join
함수와 유사한 인수를 사용하지만left_join
은 첫 번째 데이터 프레임에서 모든 행을 추출하고 두 행 모두에서 모든 열을 추출합니다.
library(dplyr)
v1 <- c(1.1, 1.2, 1.3, 2.1, 2.2, 2.3)
v2 <- c(11, 12, 13, 21, 22, 23)
df1 <- data.frame(v1, v2)
v1 <- c(9.1, 9.2, 9.3, 9.1, 9.2, 9.3, 9.3, 9.2, 9.1)
v2 <- c(101, 102, 103, 201, 202, 203, 204, 403, 404)
wday <- factor(c("Wed", "Thu", "Mon", "Wed", "Thu", "Fri", "Mon", "Tue", "Wed"))
df2 <- data.frame(v1, v2, wday)
dfl <- df1 %>% left_join(df2)
dfl
출력:
v1 v2 wday
1 1.1 11 <NA>
2 1.2 12 <NA>
3 1.3 13 <NA>
4 2.1 21 <NA>
5 2.2 22 <NA>
6 2.3 23 <NA>
right_join
함수를 사용하여 행 수가 다른 두 R 데이터 프레임 병합
right_join
은 첫 번째 데이터 프레임 인수가 아닌 두 번째 데이터 프레임 인수에서 모든 행을 추출한다는 점을 제외하면left_join
함수와 유사하게 작동합니다. 또한이 함수는 두 데이터 프레임의 모든 열을 새로 생성 된 개체로 복사합니다.
library(dplyr)
v1 <- c(1.1, 1.2, 1.3, 2.1, 2.2, 2.3)
v2 <- c(11, 12, 13, 21, 22, 23)
df1 <- data.frame(v1, v2)
v1 <- c(9.1, 9.2, 9.3, 9.1, 9.2, 9.3, 9.3, 9.2, 9.1)
v2 <- c(101, 102, 103, 201, 202, 203, 204, 403, 404)
wday <- factor(c("Wed", "Thu", "Mon", "Wed", "Thu", "Fri", "Mon", "Tue", "Wed"))
df2 <- data.frame(v1, v2, wday)
dfr <- df1 %>% right_join(df2)
dfr
출력:
v1 v2 wday
1 9.1 101 Wed
2 9.2 102 Thu
3 9.3 103 Mon
4 9.1 201 Wed
5 9.2 202 Thu
6 9.3 203 Fri
7 9.3 204 Mon
8 9.2 403 Tue
9 9.1 404 Wed
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook