logo

R merge, dplyr 또는 data.table을 사용하여 R에서 데이터를 병합하는 방법

아르 자형 통계 컴퓨팅 및 그래픽에 주로 사용되는 프로그래밍 언어이자 소프트웨어 환경입니다. 데이터 조작, 데이터 분석, 데이터 시각화 및 통계 모델링을 위한 광범위한 도구를 제공합니다.

데이터 병합은 데이터 분석 및 데이터 조작 작업입니다. R에는 데이터 프레임을 병합하는 다양한 방법이 있습니다. '병합()' 기본 R의 함수를 사용하여 'dplyr' 패키지, 그리고 '데이터.테이블' 패키지. 이 튜토리얼에서는 R을 사용하여 데이터를 병합하는 위의 세 가지 방법을 사용합니다.



1. 기본 R에서 'merge()' 사용:

기본 R의 merge() 함수는 공통 열을 기반으로 두 개 이상의 데이터 프레임을 결합하는 데 도움이 됩니다. 내부 조인, 왼쪽 조인, 오른쪽 조인, 완전 조인 등 다양한 형태의 조인을 수행합니다.

통사론:

merged_df <- merge(x,y,by = 'common_column',..)>
  • '엑스' 그리고 '그리고' 병합하려는 데이터 프레임입니다.
  • '에 의해' 병합이 수행될 공통 열을 지정합니다.
  • 다음과 같은 추가 인수 '올.엑스' , 동맹국' 그리고 '모두' 수행할 조인 유형을 제어합니다.

예:



두 개의 데이터 프레임 'df1'과 'df2'를 고려해보세요.

아르 자형






df1 <->data.frame>(ID =>c>(1, 2, 3, 4),> >Name =>c>(>'A'>,>'B'>,>'C'>,>'D'>),> >Age =>c>(25, 30, 35, 40))> df2 <->data.frame>(ID =>c>(2, 3, 4, 5),> >Occupation =>c>(>'Engineer'>,>'Teacher'>,>'Doctor'>,>'Lawyer'>),> >Salary =>c>(5000, 4000, 6000, 7000))>

>

>

'merge()' 함수를 사용하여 다양한 유형의 조인을 수행하는 예를 살펴보겠습니다.

1. 내부 조인(기본 동작):

아르 자형




inner_join <->merge>(df1, df2, by =>'ID'>)> print>(inner_join)>

>

>

산출:

 ID Name Age Occupation Salary 1 2 B 30 Engineer 5000 2 3 C 35 Teacher 4000 3 4 D 40 Doctor 6000>

결과 'inner_join' 데이터프레임에는 공통 행만 포함됩니다. 'ID' 에 존재합니다 'df1'과 'df2' 모두.

2. 왼쪽 조인( '모두.x=TRUE' ):

아르 자형




left_join <->merge>(df1, df2, by =>'ID'>, all.x =>TRUE>)> print>(left_join)>

>

주요 메소드 자바
>

산출:

 ID Name Age Occupation Salary 1 1 A 25 NA 2 2 B 30 Engineer 5000 3 3 C 35 Teacher 4000 4 4 D 40 Doctor 6000>

결과 'left_join' 데이터 프레임에는 다음의 모든 행이 포함됩니다. 'df1' 그리고 'df2'의 일치하는 행. 'df2'에서 일치하지 않는 행은 'NA' 값을 갖습니다.

삼. 오른쪽 조인( '모두.y=TRUE' ):

아르 자형




right_join <->merge>(df1, df2, by =>'ID'>, all.y =>TRUE>)> print>(right_join)>

>

정수를 문자열로
>

산출:

 ID Name Age Occupation Salary 1 2 B 30 Engineer 5000 2 3 C 35 Teacher 4000 3 4 D 40 Doctor 6000 4 5 NA Lawyer 7000>

결과 'right_join' 데이터 프레임에는 다음의 모든 행이 포함됩니다. 'df2' 및 'df1'의 일치하는 행. 'df1'에서 일치하지 않는 행은 'NA' 값을 갖습니다.

4. 완전 외부 조인( '모두 =TRUE' )

아르 자형




full_join <->merge>(df1, df2, by =>'ID'>, all =>TRUE>)> print>(full_join)>

>

>

산출:

ID Name Age Occupation Salary 1 1 A 25 NA 2 2 B 30 Engineer 5000 3 3 C 35 Teacher 4000 4 4 D 40 Doctor 6000 5 5 NA Lawyer 7000>

결과 'full_join' 데이터 프레임에는 다음이 포함됩니다. 'df1'과 'df2'의 모든 행. 일치하지 않는 값은 'NA' 값을 갖습니다.

2. 'dplyr' 패키지 사용:

'dplyr' 패키지는 데이터 프레임 병합을 포함하여 데이터 조작을 위한 일련의 기능을 제공합니다.

'dplyr' 병합의 주요 기능은 다음과 같습니다. '가입하다()', 다양한 유형의 조인을 지원합니다.

통사론:

merged_df<- join(x,y,by='common_column',type='type_of_join')>
  • '엑스' 그리고 '그리고' 병합할 데이터 프레임입니다.
  • '에 의해' 병합이 수행될 공통 열을 지정합니다.
  • '결합_유형' 'inner', 'left',' right' 또는 'full'로 조인 유형을 지정할 수 있습니다.

예:
설치하다 dplyr() 두 개의 데이터 프레임을 패키징하고 생성합니다. 'df1' 그리고 'df2'.

아르 자형




library>(dplyr)> df1 <->data.frame>(ID =>c>(1, 2, 3, 4),> >Name =>c>(>'A'>,>'B'>,>'C'>,>'D'>),> >Age =>c>(20, 30, 40, 50))> df2 <->data.frame>(ID =>c>(2, 3, 4, 5),> >Occupation =>c>(>'Engineer'>,>'Teacher'>,>'Doctor'>,>'Lawyer'>),> >Salary =>c>(2000, 4000, 6000, 7000))>

>

>

'dplyr' 함수를 사용하여 다양한 유형의 조인을 수행하는 예를 살펴보겠습니다.

1. 내부 조인:

나타샤 달랄

아르 자형




inner_join <->inner_join>(df1, df2, by =>'ID'>)> print>(inner_join)>

>

>

산출:

 ID Name Age Occupation Salary 1 2 B 30 Engineer 2000 2 3 C 40 Teacher 4000 3 4 D 50 Doctor 6000>

결과 'inner_join' 데이터 프레임에는 다음 항목만 포함됩니다. 'ID'가 'df1'과 'df2' 모두에 존재하는 공통 행입니다.

2. 왼쪽 조인:

아르 자형




left_join <->left_join>(df1, df2, by =>'ID'>)> print>(left_join)>

>

>

산출:

ID Name Age Occupation Salary 1 1 A 20 NA 2 2 B 30 Engineer 2000 3 3 C 40 Teacher 4000 4 4 D 50 Doctor 6000>

결과 'left_join' 데이터 프레임에는 다음이 포함됩니다. 'df1'의 모든 행 그리고 'df2'의 일치하는 행 . 'df2'에서 일치하지 않는 행은 'NA' 값을 갖습니다.

삼. 오른쪽 조인:

아르 자형




right_join <->right_join>(df1, df2, by =>'ID'>)> print>(right_join)>

>

>

산출:

ID Name Age Occupation Salary 1 2 B 30 Engineer 2000 2 3 C 40 Teacher 4000 3 4 D 50 Doctor 6000 4 5 NA Lawyer 7000>

결과 'right_join' 데이터프레임에는 다음이 포함됩니다. 'df2'의 모든 행 그리고 'df1'의 행과 일치합니다. 일치하지 않는 'df1' 행은 'NA' 값을 갖습니다.

4. 완전 외부 조인:

아르 자형




full_join <->full_join>(df1, df2, by =>'ID'>)> print>(full_join)>

>

>

산출:

 ID Name Age Occupation Salary 1 1 A 20 NA 2 2 B 30 Engineer 2000 3 3 C 40 Teacher 4000 4 4 D 50 Doctor 6000 5 5 NA Lawyer 7000>

결과 'full_join' 데이터 프레임에는 다음이 포함됩니다. 'df1'과 'df2'의 모든 행 . 일치하지 않는 행에는 'NA' 값이 있습니다.

3. 'data.table' 패키지 사용:

'data.table' 패키지는 데이터 조작에 대한 효율적이고 빠른 접근 방식을 제공합니다. 'merge()' 기능을 제공합니다. 이는 기본 R의 것과 유사하지만 속도에 최적화되어 있습니다.

통사론:

merged_dt <- merge(x, y, by = 'common_column', ...)>
  • '엑스' 그리고 '그리고' 병합할 데이터 프레임입니다.
  • '에 의해' 병합이 수행될 공통 열을 지정합니다.
  • 다음과 같은 추가 인수 '모두.x', '모두.y' 그리고 '모두' 조인 유형을 제어합니다.

예:

data.table 라이브러리를 설치하고 'dt1'과 'dt2'라는 두 개의 데이터 테이블을 만듭니다.

아르 자형




library>(data.table)> dt1 <->data.table>(ID =>c>(1, 2, 3, 4),> >Name =>c>(>'A'>,>'B'>,>'C'>,>'D'>),> >Age =>c>(25, 30, 35, 40))> dt2 <->data.table>(ID =>c>(2, 3, 4, 5),> >Occupation =>c>(>'Engineer'>,>'Teacher'>,>'Doctor'>,>'Lawyer'>),> >Salary =>c>(5000, 4000, 6000, 7000))>

>

진폭 변조
>

'data.table' 패키지의 'merge()' 함수를 사용하여 다양한 유형의 병합을 수행하는 예를 살펴보겠습니다.

1. 내부 조인(기본 동작):

아르 자형




inner_join <->merge>(df1, df2, by =>'ID'>)> print>(inner_join)>

>

>

산출:

 ID Name Age Occupation Salary 1 2 B 30 Engineer 2000 2 3 C 40 Teacher 4000 3 4 D 50 Doctor 6000>

결과 'inner_join' 데이터 프레임에는 다음 항목만 포함됩니다. 'ID'가 'df1'과 'df2' 모두에 존재하는 공통 행입니다.

2. 왼쪽 조인('all.x = TRUE'):

아르 자형




left_join <->merge>(df1, df2, by =>'ID'>, all.x =>TRUE>)> print>(left_join)>

>

>

산출:

 ID Name Age Occupation Salary 1 1 A 20 NA 2 2 B 30 Engineer 2000 3 3 C 40 Teacher 4000 4 4 D 50 Doctor 6000>

결과 'left_join' 데이터 프레임에는 다음이 포함됩니다. 모두 불일치 'df1'에서 그리고 'df2'의 행과 일치합니다. 'df2'에서 일치하지 않는 행은 'NA' 값을 갖습니다.

삼. 오른쪽 조인('all.y = TRUE'):

아르 자형




right_join <->merge>(df1, df2, by =>'ID'>, all.y =>TRUE>)> print>(right_join)>

>

>

산출:

 ID Name Age Occupation Salary 1 2 B 30 Engineer 2000 2 3 C 40 Teacher 4000 3 4 D 50 Doctor 6000 4 5 NA Lawyer 7000>

결과 'right_join' 데이터 프레임에는 다음이 포함됩니다. 모두 불일치 'df2'의 행과 'df1'의 일치하는 행. 'df1'의 일치하지 않는 행에는 'NA' 값이 있습니다.

삼. 완전 외부 조인('all = TRUE'):

아르 자형




char를 int로 자바
full_join <->merge>(df1, df2, by =>'ID'>, all =>TRUE>)> print>(full_join)>

>

>

산출:

 ID Name Age Occupation Salary 1 1 A 20 NA 2 2 B 30 Engineer 2000 3 3 C 40 Teacher 4000 4 4 D 50 Doctor 6000 5 5 NA Lawyer 7000>

결과 'full_join' 데이터 프레임에는 다음이 포함됩니다. 모두 불일치 'df1'과 'df2'의 행. 일치하지 않는 행에는 'NA' 값이 있습니다.

'dplyr' 및 'data.table' 사용의 장점 중 하나는 기본 R에 비해 데이터 조작에 대해 더 간결하고 읽기 쉬운 구문을 제공한다는 것입니다.

요약:

  • 'merge()'는 데이터 프레임을 병합하는 범용 함수를 제공합니다.
  • 'dplyr'은 가독성과 사용 편의성에 중점을 두고 병합에 중점을 둡니다.
  • '데이터. 테이블'은 최적화된 성능으로 대규모 데이터 세트를 처리하는 빠르고 효율적인 방법을 제공합니다.
  • 작업의 복잡성과 수행 요구 사항을 기반으로 접근 방식을 선택해야 합니다.