innerjoin
테이블 또는 타임테이블 두 개 간 내부 결합
구문
설명
는 키 변수를 사용하여 T
= innerjoin(Tleft
,Tright
)Tleft
와 Tright
의 내부 결합하여 테이블 또는 타임테이블 T
를 만듭니다. 두 입력값에서 동일한 이름을 갖는 변수는 모두 키 변수입니다. 내부 결합은 키 변수에 일치하는 값이 있는 행을 결합합니다. 예를 들어, Tleft
가 Key1
, Var1
이라는 이름의 변수를 갖고 Tright
가 Key1
, Var2
라는 변수를 갖는 경우 T=innerjoin(Tleft,Tright)
는 Key1
을 키 변수로 사용합니다.
왼쪽 테이블과 오른쪽 테이블에서 키 변수의 일치하는 값은 순서가 동일하지 않아도 됩니다. 내부 결합은 두 테이블의 키 변수 간에 일대다 일치와 다대일 일치를 수행할 수 있습니다. 즉, 왼쪽 테이블의 키 변수에 한 번 나타나는 값이 오른쪽 테이블에서 여러 일치 항목을 가질 수 있습니다. 마찬가지로, 오른쪽 테이블의 키 변수에 한 번 나타나는 값이 왼쪽 테이블에서 여러 일치 항목을 가질 수 있습니다.
내부 결합은 테이블과 타임테이블 간 특정 조합 시 수행할 수 있습니다.
Tleft
가 테이블이면Tright
도 테이블이어야 합니다.innerjoin
은T
를 테이블로 반환합니다.Tleft
가 타임테이블이면Tright
는 테이블이거나 타임테이블일 수 있습니다.innerjoin
은 입력값들의 두 가지 조합 어느 쪽에 대해서도T
를 타임테이블로 반환합니다.
Tleft
와 Tright
의 행 레이블로 구성된 벡터는 키 변수일 수 있습니다. 행 레이블은 테이블의 행 이름 또는 타임테이블의 행 시간값입니다.
는 하나 이상의 T
= innerjoin(Tleft
,Tright
,Name,Value
)Name,Value
쌍 인수로 지정된 추가 옵션을 통해 내부 결합 연산을 수행합니다.
예를 들어, 키 변수로 사용할 변수를 지정할 수 있습니다.
예제
공통 변수가 하나인 테이블 간의 내부 결합
테이블 Tleft
를 만듭니다.
Tleft = table([5;12;23;2;6],... {'cereal';'pizza';'salmon';'cookies';'pizza'},... 'VariableNames',{'Age','FavoriteFood'})
Tleft=5×2 table
Age FavoriteFood
___ ____________
5 {'cereal' }
12 {'pizza' }
23 {'salmon' }
2 {'cookies'}
6 {'pizza' }
Tleft
와 하나의 공통 변수를 가지고 있는 테이블 Tright
를 생성합니다.
Tright = table({'cereal';'cookies';'pizza';'salmon';'cake'},... [110;160;140;367;243],... {'A-';'D';'B';'B';'C-'},... 'VariableNames',{'FavoriteFood','Calories','NutritionGrade'})
Tright=5×3 table
FavoriteFood Calories NutritionGrade
____________ ________ ______________
{'cereal' } 110 {'A-'}
{'cookies'} 160 {'D' }
{'pizza' } 140 {'B' }
{'salmon' } 367 {'B' }
{'cake' } 243 {'C-'}
innerjoin
함수를 사용하여 테이블 Tleft
와 Tright
의 데이터로 새 테이블 T
를 생성합니다.
T = innerjoin(Tleft,Tright)
T=5×4 table
Age FavoriteFood Calories NutritionGrade
___ ____________ ________ ______________
5 {'cereal' } 110 {'A-'}
2 {'cookies'} 160 {'D' }
12 {'pizza' } 140 {'B' }
6 {'pizza' } 140 {'B' }
23 {'salmon' } 367 {'B' }
테이블 T
는 키 변수 FavoriteFood
에 의해 정렬됩니다.
테이블과 값에 대한 인덱스의 내부 결합 연산
테이블 Tleft
를 만듭니다.
Tleft = table({'a' 'b' 'c' 'e' 'h'}',[1 2 3 11 17]',... 'VariableNames',{'Key1' 'Var1'})
Tleft=5×2 table
Key1 Var1
_____ ____
{'a'} 1
{'b'} 2
{'c'} 3
{'e'} 11
{'h'} 17
테이블 Tleft
와 Tright
간의 공통된 값을 변수 Key1
에 포함할 뿐만 아니라, Tleft
에 없는 값도 Key1
값으로 포함하는 행을 갖는 테이블 Tright
를 생성합니다.
Tright = table({'a' 'b' 'd' 'e'}',[4 5 6 7]',... 'VariableNames',{'Key1' 'Var2'})
Tright=4×2 table
Key1 Var2
_____ ____
{'a'} 4
{'b'} 5
{'d'} 6
{'e'} 7
innerjoin
함수를 사용하여 테이블 Tleft
와 Tright
의 데이터로 새 테이블 T
를 생성합니다. 변수 Key1
의 값이 일치하는 행만 유지합니다.
T
의 행과 Tleft
및 Tright
각각의 행 사이의 대응 관계를 나타내는 인덱스 벡터 ileft
와 iright
역시 반환합니다.
[T,ileft,iright] = innerjoin(Tleft,Tright)
T=3×3 table
Key1 Var1 Var2
_____ ____ ____
{'a'} 1 4
{'b'} 2 5
{'e'} 11 7
ileft = 3×1
1
2
4
iright = 3×1
1
2
4
테이블 T
는 키 변수 Key1
의 값으로 정렬되며, Tleft(ileft,:)
와 Tright(iright,'Var2')
의 가로 결합(Concatenate)을 포함합니다.
왼쪽 테이블과 오른쪽 테이블의 키 변수를 사용한 테이블의 내부 결합 연산
테이블 Tleft
를 만듭니다.
Tleft = table([10;4;2;3;7],[5;4;9;6;1],[10;3;8;8;4])
Tleft=5×3 table
Var1 Var2 Var3
____ ____ ____
10 5 10
4 4 3
2 9 8
3 6 8
7 1 4
테이블 Tleft
의 첫 번째 변수와 공통된 값을 가지는 두 번째 변수를 포함하는 테이블 Tright
를 생성합니다.
Tright = table([6;1;1;6;8],[2;3;4;5;6])
Tright=5×2 table
Var1 Var2
____ ____
6 2
1 3
1 4
6 5
8 6
innerjoin
함수를 사용하여 테이블 Tleft
와 Tright
의 데이터로 새 테이블 T
를 생성합니다. Tleft
의 첫 번째 변수와 Tright
의 두 번째 변수를 키 변수로 사용합니다.
[T,ileft,iright] = innerjoin(Tleft,Tright,'LeftKeys',1,'RightKeys',2)
T=3×4 table
Var1_Tleft Var2 Var3 Var1_Tright
__________ ____ ____ ___________
2 9 8 6
3 6 8 1
4 4 3 1
ileft = 3×1
3
4
2
iright = 3×1
1
2
3
테이블 T
는 키 변수가 Tleft
와 Tright
사이에 일치하는 행들만 유지합니다.
테이블 T
는 Tleft(ileft,:)
와 Tright(iright,'Var1')
의 가로 결합을 포함합니다.
타임테이블의 내부 결합 연산
두 개의 타임테이블 Tleft
와 Tright
를 생성합니다. 이 두 타임테이블은 몇 개의 공통 행 시간값을 가지고, 서로의 타임테이블에 없는 행 시간값도 포함합니다.
Tleft = timetable(seconds([1;2;4;6]),[1 2 3 11]')
Tleft=4×1 timetable
Time Var1
_____ ____
1 sec 1
2 sec 2
4 sec 3
6 sec 11
Tright = timetable(seconds([2;4;6;7]),[4 5 6 7]')
Tright=4×1 timetable
Time Var1
_____ ____
2 sec 4
4 sec 5
6 sec 6
7 sec 7
내부 결합을 사용하여 Tleft
와 Tright
를 결합합니다. T
는 공통된 행 시간값을 가지는 행과 일치합니다. T
는 두 타임테이블에서 어떠한 다른 행도 포함하지 않습니다.
T = innerjoin(Tleft,Tright)
T=3×2 timetable
Time Var1_Tleft Var1_Tright
_____ __________ ___________
2 sec 2 4
4 sec 3 5
6 sec 11 6
입력 인수
Tleft
— 왼쪽 테이블
테이블 | 타임테이블
왼쪽 테이블로, table형이나 timetable형으로 지정됩니다.
Tright
— 오른쪽 테이블
테이블 | 타임테이블
오른쪽 테이블로, table형이나 timetable형으로 지정됩니다.
이름-값 인수
선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN
으로 지정합니다. 여기서 Name
은 인수 이름이고 Value
는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name
을 따옴표로 묶으십시오.
예: 'Keys',2
는 Tleft
의 두 번째 변수와 Tright
의 두 번째 변수를 키 변수로 사용합니다.
Keys
— 키로 사용할 변수
양의 정수 | 양의 정수로 구성된 벡터 | string형 배열 | 문자형 벡터 | 문자형 벡터로 구성된 셀형 배열 | pattern
스칼라 | 논리형 벡터
키로 사용할 변수로, 'Keys'
와 함께 양의 정수, 양의 정수로 구성된 벡터, string형 배열, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, pattern
형 스칼라 또는 논리형 벡터가 쉼표로 구분되어 지정됩니다.
'Keys'
이름-값 쌍의 인수는 'LeftKeys'
및 'RightKeys'
이름-값 쌍의 인수와 함께 사용할 수 없습니다.
행 레이블로 구성된 벡터는 단독 키가 되거나 다른 키 변수와 조합된 키가 될 수 있습니다. 자세한 내용은 팁 섹션을 참조하십시오.
예: 'Keys',[1 3]
은 Tleft
와 Tright
의 첫 번째와 세 번째 변수를 키 변수로 사용합니다.
예: 'Keys',{'X','Y'}
는 Tleft
와 Tright
에 포함된 X
라는 이름의 변수와 Y
라는 이름의 변수를 키 변수로 사용합니다.
예: 'Keys','Row'
는 Tleft
와 Tright
가 모두 행 이름이 있는 테이블이면 Tleft
와 Tright
의 행 이름으로 구성된 벡터를 키 변수로 사용합니다.
LeftKeys
— Tleft
에서 키로 사용할 변수
양의 정수 | 양의 정수로 구성된 벡터 | string형 배열 | 문자형 벡터 | 문자형 벡터로 구성된 셀형 배열 | pattern
스칼라 | 논리형 벡터
Tleft
에서 키로 사용할 변수로, 'LeftKeys'
와 함께 양의 정수, 양의 정수로 구성된 벡터, string형 배열, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, pattern
형 스칼라 또는 논리형 벡터가 쉼표로 구분되어 지정됩니다.
'LeftKeys'
이름-값 쌍의 인수는 'RightKeys'
이름-값 쌍의 인수와 함께 사용해야 합니다. 'LeftKeys'
와 'RightKeys'
는 모두 동일한 수의 키 변수를 지정해야 합니다. innerjoin
은 키 값의 순서에 기초하여 키 값의 쌍을 지정합니다.
행 레이블로 구성된 벡터는 단독 키가 되거나 다른 키 변수와 조합된 키가 될 수 있습니다. 자세한 내용은 팁 섹션을 참조하십시오.
예: 'LeftKeys',1
은 Tleft
의 첫 번째 변수만 키 변수로 사용합니다.
RightKeys
— Tright
에서 키로 사용할 변수
양의 정수 | 양의 정수로 구성된 벡터 | string형 배열 | 문자형 벡터 | 문자형 벡터로 구성된 셀형 배열 | pattern
스칼라 | 논리형 벡터
Tright
에서 키로 사용할 변수로, 'RightKeys'
와 함께 양의 정수, 양의 정수로 구성된 벡터, string형 배열, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, pattern
형 스칼라 또는 논리형 벡터가 쉼표로 구분되어 지정됩니다.
'RightKeys'
이름-값 쌍의 인수는 'LeftKeys'
이름-값 쌍의 인수와 함께 사용해야 합니다. 'LeftKeys'
와 'RightKeys'
는 모두 동일한 수의 키 변수를 지정해야 합니다. innerjoin
은 키 값의 순서에 기초하여 키 값의 쌍을 지정합니다.
행 레이블로 구성된 벡터는 단독 키가 되거나 다른 키 변수와 조합된 키가 될 수 있습니다. 자세한 내용은 팁 섹션을 참조하십시오.
예: 'RightKeys',3
은 Tright
의 세 번째 변수만 키 변수로 사용합니다.
LeftVariables
— T
에 포함시킬 Tleft
의 변수
양의 정수 | 양의 정수로 구성된 벡터 | string형 배열 | 문자형 벡터 | 문자형 벡터로 구성된 셀형 배열 | pattern
스칼라 | 논리형 벡터
T
에 포함시킬 Tleft
의 변수로, 'LeftVariables'
와 함께 양의 정수, 양의 정수로 구성된 벡터, string형 배열, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, pattern
형 스칼라 또는 논리형 벡터가 쉼표로 구분되어 지정됩니다.
'LeftVariables'
를 사용하여 키 변수뿐 아니라 키가 아닌 변수를 출력값 T
에 포함하거나 제외할 수 있습니다.
기본적으로 innerjoin
은 Tleft
의 모든 변수를 포함합니다.
RightVariables
— T
에 포함시킬 Tright
의 변수
양의 정수 | 양의 정수로 구성된 벡터 | string형 배열 | 문자형 벡터 | 문자형 벡터로 구성된 셀형 배열 | pattern
스칼라 | 논리형 벡터
T
에 포함시킬 Tright
의 변수로, 'RightVariables'
와 함께 양의 정수, 양의 정수로 구성된 벡터, string형 배열, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, pattern
형 스칼라 또는 논리형 벡터가 쉼표로 구분되어 지정됩니다.
'RightVariables'
를 사용하여 키 변수뿐 아니라 키가 아닌 변수를 출력값 T
에 포함하거나 제외할 수 있습니다.
기본적으로 innerjoin
은 키 변수를 제외한 Tright
의 모든 변수를 포함시킵니다.
출력 인수
T
— Tleft
와 Tright
의 내부 결합 값
테이블 | 타임테이블
Tleft
와 Tright
의 내부 결합 값으로, 테이블 또는 타임테이블로 반환됩니다. Tleft
와 Tright
에서 동일한 키 변수 값의 조합을 공유하는 행의 쌍마다 한 행씩 출력 변수 T
에 포함됩니다. C는 테이블 또는 타임테이블입니다. Tleft
와 Tright
가 동일한 이름을 가진 변수를 포함할 경우, innerjoin
은 T
에서 대응하는 변수 이름에 고유한 접미사를 추가합니다.
일반적으로, 동일한 키 변수 값의 조합을 가지는 행이 Tleft
에 m
개가 있고 Tright
에 n
개가 있을 경우, T
는 해당 조합에 대해 m*n
개의 행을 포함합니다.
T
는 키 변수 값으로 정렬되며, Tleft(ileft,LeftVars)
와 Tright(iright,RightVars)
의 가로 결합(Concatenate)을 포함합니다. 기본적으로 LeftVars
는 Tleft
의 모든 변수로, RightVars
는 Tright
의 키가 아닌 모든 변수로 구성됩니다. 그렇지 않은 경우, LefttVars
는 'LeftVariables'
이름-값 쌍의 인수로 지정된 변수로 구성되며, RightVars
는 'RightVariables'
이름-값 쌍의 인수로 지정된 변수입니다.
설명, 변수 단위, 변수 이름, 행 이름과 같은 메타데이터를 추가로 T
에 저장할 수 있습니다. 자세한 내용은 table
또는 timetable
속성 설명을 참조하십시오.
ileft
— Tleft
에 대한 인덱스
열 벡터
Tleft
에 대한 인덱스로, 열 벡터로 반환됩니다. ileft
의 각 요소는 출력 테이블 또는 타임테이블 T
의 행에 대응하는 Tleft
의 행을 식별합니다.
iright
— Tright
에 대한 인덱스
열 벡터
Tright
에 대한 인덱스로, 열 벡터로 반환됩니다. iright
의 각 요소는 출력 테이블 또는 타임테이블 T
의 행에 대응하는 Tright
의 행을 식별합니다.
세부 정보
키 변수
입력 테이블 Tleft
와 Tright
간의 데이터를 일치시키고 결합하는 데 사용되는 변수입니다.
팁
입력 테이블 또는 타임테이블의 행 레이블로 구성된 벡터는 단독 키가 되거나 다른 키 변수와 조합된 키가 될 수 있습니다. 행 레이블은 테이블의 행 이름 또는 타임테이블의 행 시간값입니다. 이 벡터를 키로 사용하려면 벡터를
'Row'
(테이블의 행 이름에 대해), 행 시간값으로 구성된 타임테이블 벡터의 이름 또는
의 값으로 지정하십시오. 여기서T
.Properties.DimensionNames{1}
는 테이블 또는 타임테이블입니다.T
일반적으로,
innerjoin
은 입력 테이블Tleft
에서 출력 테이블T
로 행 레이블을 복사합니다.Tleft
에 행 레이블이 없으면T
에도 행 레이블이 없습니다.Tleft
에 행 레이블이 있으면innerjoin
은Tleft
에서 행 레이블을 복사하여T
에 행 레이블을 만듭니다.단,
Tleft
와Tright
가 테이블인데 어떠한 입력 테이블의 행 이름도 키로 지정하지 않으면innerjoin
은T
에 행 이름을 만들지 않습니다.
Tleft
의 행 레이블을 왼쪽 테이블의 키로 사용하고Tright
의 변수를 오른쪽 테이블의 키로 사용하여 내부 결합을 수행할 수는 없습니다. 내부 결합을 수행하려면Tleft
의 행 레이블을 테이블 변수로 변환하고 새 테이블 변수를 키로 사용하십시오.
확장 기능
tall형 배열
메모리에 담을 수 없을 정도로 많은 행을 가진 배열을 계산할 수 있습니다.
사용법 관련 참고 및 제한 사항:
아래와 같은 이름-값 인수의 값은 패턴 표현식을 지원하지 않습니다.
'Keys'
'LeftKeys'
'RightKeys'
'LeftVariables'
'RightVariables'
자세한 내용은 tall형 배열 항목을 참조하십시오.
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
일반적으로 입력 테이블에서는 키에 해당하지 않는 변수들의 이름이 같아서는 안 됩니다. 그러나
'LeftVariables'
및'RightVariables'
이름-값 인수를 지정하는 경우 입력 테이블의 서브셋을 결합할 수 있습니다. 이러한 인수를 지정하여 변수 이름이'LeftVariables'
와'RightVariables'
둘 다에 나타나지 않도록 하십시오.아래와 같은 이름-값 인수의 값은 상수여야 합니다.
'Keys'
'LeftKeys'
'RightKeys'
'LeftVariables'
'RightVariables'
아래와 같은 이름-값 인수의 값은 패턴 표현식을 지원하지 않습니다.
'Keys'
'LeftKeys'
'RightKeys'
'LeftVariables'
'RightVariables'
중첩 테이블과 타임테이블은 지원되지 않습니다.
버전 내역
R2013b에 개발됨
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)