이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

join

키 변수를 사용하여 행을 기준으로 2개의 테이블 또는 타임테이블 결합

설명

예제

T = join(Tleft,Tright)키 변수를 사용하여 테이블 또는 타임테이블 TleftTright를 결합합니다. 두 테이블 모두에서 이름이 동일한 변수는 모두 키 변수입니다. 테이블 결합은 오른쪽 테이블의 키 변수 값이 왼쪽 테이블의 키 변수 값과 일치할 때, 일치하는 오른쪽 테이블의 행을 추가합니다. 예를 들어, TleftKey1, Var1이라는 이름의 변수를 갖고 TrightKey1, Var2라는 변수를 갖는 경우 T=join(Tleft,Tright)Key1을 키 변수로 사용합니다.

왼쪽 테이블과 오른쪽 테이블에서 키 변수의 일치하는 값은 순서가 동일하지 않아도 됩니다. 또한 Tright의 키 변수는 Tleft의 키 변수에 있는 모든 값을 포함해야 합니다. 각각의 값은 Tright의 키 변수에는 한 번만 나타나야 하지만, Tleft의 키 변수에는 여러 번 나타날 수 있습니다.

입력값은 전부 테이블 또는 타임테이블이거나 하나는 테이블이고, 다른 하나는 타임테이블일 수 있습니다.

  • Tleft가 테이블인 경우 joinT를 테이블로 반환합니다.

  • Tleft가 타임테이블인 경우 joinT를 타임테이블로 반환합니다.

TleftTright의 행 레이블로 구성된 벡터는 키 변수일 수 있습니다. 행 레이블은 테이블의 행 이름 또는 타임테이블의 행 시간값입니다.

예제

T = join(Tleft,Tright,Name,Value)는 하나 이상의 Name,Value 쌍 인수로 추가 옵션을 지정하여 테이블 또는 타임테이블을 결합합니다.

예를 들어, 키 변수로 사용할 변수를 지정할 수 있습니다.

예제

[T,iright] = join(___)은 인덱스 벡터 iright도 반환하며, iright의 각 요소는 T의 행에 대응하는 Tright의 행을 식별합니다. 이 구문은 위에 열거된 구문 중 하나의 입력 인수에 사용할 수 있습니다.

예제

모두 축소

테이블 Tleft를 만듭니다.

Tleft = table({'Janice','Jonas','Javier','Jerry','Julie'}',[1;2;1;2;1],...
        'VariableNames',{'Employee' 'Department'})
Tleft=5×2 table
     Employee     Department
    __________    __________

    {'Janice'}        1     
    {'Jonas' }        2     
    {'Javier'}        1     
    {'Jerry' }        2     
    {'Julie' }        1     

Tleft와 하나의 공통 변수를 가지고 있는 테이블 Tright를 만듭니다.

Tright = table([1 2]',{'Mary' 'Mona'}',...
         'VariableNames',{'Department' 'Manager'})
Tright=2×2 table
    Department    Manager 
    __________    ________

        1         {'Mary'}
        2         {'Mona'}

테이블 TleftTright의 데이터를 포함하는 새 테이블 T를 만듭니다. join 함수를 사용하여 키 변수 Department를 기준으로 테이블 TrightManager 데이터를 테이블 Tleft의 데이터에 반복 추가합니다.

T = join(Tleft,Tright)
T=5×3 table
     Employee     Department    Manager 
    __________    __________    ________

    {'Janice'}        1         {'Mary'}
    {'Jonas' }        2         {'Mona'}
    {'Javier'}        1         {'Mary'}
    {'Jerry' }        2         {'Mona'}
    {'Julie' }        1         {'Mary'}

테이블 Tleft를 만듭니다.

Tleft = table([5;12;23;2;6],...
        {'cereal';'pizza';'salmon';'cookies';'pizza'},...
        'VariableNames',{'Age','FavoriteFood'},...
        'RowNames',{'Amy','Bobby','Holly','Harry','Sally'})
Tleft=5×2 table
             Age    FavoriteFood
             ___    ____________

    Amy       5     {'cereal' } 
    Bobby    12     {'pizza'  } 
    Holly    23     {'salmon' } 
    Harry     2     {'cookies'} 
    Sally     6     {'pizza'  } 

Tleft와 하나의 공통 변수를 가지고 있는 테이블 Tright를 생성합니다.

Tright = table({'cereal';'cookies';'pizza';'salmon';'cake'},...
         [110;160;140;367;243],...
         {'B';'D';'B-';'A';'C-'},...
         'VariableNames',{'FavoriteFood','Calories','NutritionGrade'})
Tright=5×3 table
    FavoriteFood    Calories    NutritionGrade
    ____________    ________    ______________

    {'cereal' }       110           {'B' }    
    {'cookies'}       160           {'D' }    
    {'pizza'  }       140           {'B-'}    
    {'salmon' }       367           {'A' }    
    {'cake'   }       243           {'C-'}    

테이블 TleftTright의 데이터로 새 테이블 T를 만듭니다. 공통된 변수 FavoriteFoodjoin 함수에서 키 변수로 사용됩니다.

T = join(Tleft,Tright)
T=5×4 table
             Age    FavoriteFood    Calories    NutritionGrade
             ___    ____________    ________    ______________

    Amy       5     {'cereal' }       110           {'B' }    
    Bobby    12     {'pizza'  }       140           {'B-'}    
    Holly    23     {'salmon' }       367           {'A' }    
    Harry     2     {'cookies'}       160           {'D' }    
    Sally     6     {'pizza'  }       140           {'B-'}    

테이블 T에는 테이블 Tright의 마지막 행에 있는 'cake'에 대한 정보가 포함되지 않습니다. 테이블 Tleft에 대응하는 항목이 없기 때문입니다.

테이블 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 

테이블 TrightVar2에 테이블 TleftVar2와 동일한 내용을 지정하여 테이블 Tright를 만듭니다.

Tright = table([6;1;1;6;8],[5;4;9;6;1])
Tright=5×2 table
    Var1    Var2
    ____    ____

     6       5  
     1       4  
     1       9  
     6       6  
     8       1  

테이블 TleftTright의 데이터를 포함하는 새 테이블 T를 만듭니다. 테이블 TleftTrightVar2join 함수에 대한 키 변수로 사용합니다.

T = join(Tleft,Tright,'Keys','Var2')
T=5×4 table
    Var1_Tleft    Var2    Var3    Var1_Tright
    __________    ____    ____    ___________

        10         5       10          6     
         4         4        3          1     
         2         9        8          1     
         3         6        8          6     
         7         1        4          8     

join은 키가 아닌 변수 Var1에 고유한 접미사를 추가하여 테이블 TleftTright의 데이터를 구분합니다.

테이블 TleftTright의 데이터로 새 테이블을 만듭니다. 두 테이블 모두에서 이름이 동일한 키가 아닌 변수가 있으면 이에 대해 테이블 Tleft의 복사본만 유지합니다.

테이블 Tleft를 만듭니다.

Tleft = table([10;4;2;3;7],[5;4;9;6;1])
Tleft=5×2 table
    Var1    Var2
    ____    ____

     10      5  
      4      4  
      2      9  
      3      6  
      7      1  

테이블 TrightVar2에 테이블 TleftVar2와 동일한 내용을 지정하여 테이블 Tright를 만듭니다.

Tright = table([6;1;1;6;8],[5;4;9;6;1],[10;3;8;8;4])
Tright=5×3 table
    Var1    Var2    Var3
    ____    ____    ____

     6       5       10 
     1       4        3 
     1       9        8 
     6       6        8 
     8       1        4 

테이블 TleftTright의 데이터로 새 테이블 T를 만듭니다. Var2join 함수에 대한 키 변수로 사용하고 테이블 TleftVar1 복사본만 유지합니다. 출력 테이블 T에 테이블 TrightVar1 데이터는 포함되지 않습니다.

T = join(Tleft,Tright,'Keys','Var2','KeepOneCopy','Var1')
T=5×3 table
    Var1    Var2    Var3
    ____    ____    ____

     10      5       10 
      4      4        3 
      2      9        8 
      3      6        8 
      7      1        4 

테이블 Tleft를 만듭니다.

Tleft = table(['M';'M';'F';'F';'F'],[38;43;38;40;49],...
        'VariableNames',{'Gender' 'Age'},...
        'RowNames',{'Smith' 'Johnson' 'Williams' 'Jones' 'Brown'})
Tleft=5×2 table
                Gender    Age
                ______    ___

    Smith         M       38 
    Johnson       M       43 
    Williams      F       38 
    Jones         F       40 
    Brown         F       49 

테이블 Tright를 만듭니다. Tleft의 행과 Tright의 행 사이에는 일대일 대응 관계가 성립합니다.

Tright = table([64;69;67;71;64],...
         [119;163;133;176;131],...
         [122 80; 109 77; 117 75; 124 93; 125 83],...
         'VariableNames',{'Height' 'Weight' 'BloodPressure'},...
         'RowNames',{'Brown' 'Johnson' 'Jones' 'Smith' 'Williams'})
Tright=5×3 table
                Height    Weight    BloodPressure
                ______    ______    _____________

    Brown         64       119       122     80  
    Johnson       69       163       109     77  
    Jones         67       133       117     75  
    Smith         71       176       124     93  
    Williams      64       131       125     83  

테이블 TleftTright의 데이터로 새 테이블 T를 만듭니다. 행 이름으로 구성된 벡터를 키 변수로 사용합니다. (테이블의 행 이름으로 구성된 벡터의 이름은 Tleft.Properties.DimensionNames{1}에서 보이는 것처럼 'Row'입니다.)

T = join(Tleft,Tright,'Keys','Row')
T=5×5 table
                Gender    Age    Height    Weight    BloodPressure
                ______    ___    ______    ______    _____________

    Smith         M       38       71       176       124     93  
    Johnson       M       43       69       163       109     77  
    Williams      F       38       64       131       125     83  
    Jones         F       40       67       133       117     75  
    Brown         F       49       64       119       122     80  

TTleft와 행 순서가 동일합니다.

테이블 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 

테이블 TrightVar2에 테이블 TleftVar1과 동일한 내용을 다른 순서로 지정하여 테이블 Tright를 만듭니다.

Tright = table([6;1;1;6;8],[2;3;4;7;10])
Tright=5×2 table
    Var1    Var2
    ____    ____

     6        2 
     1        3 
     1        4 
     6        7 
     8       10 

테이블 TleftTright의 데이터를 포함하는 새 테이블 T를 만듭니다. 테이블 TleftVar1을 테이블 TrightVar2와 함께 join 함수에 대한 키 변수로 사용합니다.

[T,iright] = join(Tleft,Tright,'LeftKeys',1,'RightKeys',2)
T=5×4 table
    Var1_Tleft    Var2    Var3    Var1_Tright
    __________    ____    ____    ___________

        10         5       10          8     
         4         4        3          1     
         2         9        8          6     
         3         6        8          1     
         7         1        4          6     

iright = 5×1

     5
     3
     1
     2
     4

TTleftTright(iright,1)의 가로 결합(Concatenate)입니다.

행 시간값은 같지만 변수는 다른 2개의 타임테이블을 만듭니다.

Traffic = [0.8 0.9 0.1 0.7 0.9]';
Noise = [0 1 1.5 2 2.3]';
Tleft = timetable(hours(1:5)',Traffic,Noise)
Tleft=5×3 timetable
    Time    Traffic    Noise
    ____    _______    _____

    1 hr      0.8         0 
    2 hr      0.9         1 
    3 hr      0.1       1.5 
    4 hr      0.7         2 
    5 hr      0.9       2.3 

Distance = [0.88 0.86 0.91 0.9 0.86]';
Tright = timetable(hours(1:5)',Distance)
Tright=5×2 timetable
    Time    Distance
    ____    ________

    1 hr      0.88  
    2 hr      0.86  
    3 hr      0.91  
    4 hr       0.9  
    5 hr      0.86  

타임테이블을 병합합니다. join은 행 시간값을 키 변수로 사용합니다.

T = join(Tleft,Tright)
T=5×4 timetable
    Time    Traffic    Noise    Distance
    ____    _______    _____    ________

    1 hr      0.8         0       0.88  
    2 hr      0.9         1       0.86  
    3 hr      0.1       1.5       0.91  
    4 hr      0.7         2        0.9  
    5 hr      0.9       2.3       0.86  

타임테이블과 테이블을 만듭니다.

Measurements = [0.13 0.22 0.31 0.42 0.53 0.57 0.67 0.81 0.90 1.00]';
Device = ['A';'B';'A';'B';'A';'B';'A';'B';'A';'B'];
Tleft = timetable(seconds(1:10)',Measurements,Device)
Tleft=10×3 timetable
     Time     Measurements    Device
    ______    ____________    ______

    1 sec         0.13          A   
    2 sec         0.22          B   
    3 sec         0.31          A   
    4 sec         0.42          B   
    5 sec         0.53          A   
    6 sec         0.57          B   
    7 sec         0.67          A   
    8 sec         0.81          B   
    9 sec          0.9          A   
    10 sec           1          B   

Device = ['A';'B'];
Accuracy = [0.023;0.037];
Tright = table(Device,Accuracy)
Tright=2×2 table
    Device    Accuracy
    ______    ________

      A        0.023  
      B        0.037  

타임테이블과 테이블을 병합합니다. TleftTright 모두에 Device라는 이름의 변수가 있기 때문에 이 항목이 키 변수가 됩니다. T는 타임테이블입니다.

T = join(Tleft,Tright)
T=10×4 timetable
     Time     Measurements    Device    Accuracy
    ______    ____________    ______    ________

    1 sec         0.13          A        0.023  
    2 sec         0.22          B        0.037  
    3 sec         0.31          A        0.023  
    4 sec         0.42          B        0.037  
    5 sec         0.53          A        0.023  
    6 sec         0.57          B        0.037  
    7 sec         0.67          A        0.023  
    8 sec         0.81          B        0.037  
    9 sec          0.9          A        0.023  
    10 sec           1          B        0.037  

입력 인수

모두 축소

왼쪽 테이블로, table형이나 timetable형으로 지정됩니다. 모든 키 변수에서 Tleft의 각 행은 Tright의 하나의 행과 일치해야 합니다.

오른쪽 테이블로, table형이나 timetable형으로 지정됩니다. 모든 키 변수에서 Tright의 각 행은 Tleft의 하나의 행과 일치해야 합니다.

이름-값 쌍의 인수

선택적으로 Name,Value 인수가 쉼표로 구분되어 지정됩니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. Name은 따옴표 안에 표시해야 합니다. Name1,Value1,...,NameN,ValueN과 같이 여러 개의 이름-값 쌍의 인수를 어떤 순서로든 지정할 수 있습니다.

예: 'Keys',2Tleft의 두 번째 변수와 Tright의 두 번째 변수를 키 변수로 사용합니다.

키로 사용할 변수로, 'Keys'와 함께 양의 정수, 양의 정수로 구성된 벡터, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, string형 배열, 논리형 벡터 또는 'RowNames'가 쉼표로 구분되어 지정됩니다.

'Keys' 이름-값 쌍의 인수는 'LeftKeys''RightKeys' 이름-값 쌍의 인수와 함께 사용할 수 없습니다.

행 레이블로 구성된 벡터는 키 변수가 될 수 있습니다. 행 레이블은 테이블의 행 이름 또는 타임테이블의 행 시간값입니다. 'Keys'를 행 레이블로만 지정하거나, TleftTright에 포함된 하나 이상의 변수로 지정하거나, 행 레이블과 변수 모두로 지정할 수 있습니다.

예: 'Keys',[1 3]TleftTright의 첫 번째 변수와 세 번째 변수를 키 변수로 사용합니다.

예: 'Keys',{'X','Y'}TleftTright에 포함된 X라는 이름의 변수와 Y라는 이름의 변수를 키 변수로 사용합니다.

예: 'Keys','Row'TleftTright가 모두 행 이름이 있는 테이블이면 TleftTright의 행 이름으로 구성된 벡터를 키 변수로 사용합니다.

Tleft에서 키로 사용할 변수로, 'LeftKeys'와 함께 양의 정수, 양의 정수로 구성된 벡터, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, string형 배열 또는 논리형 벡터가 쉼표로 구분되어 지정됩니다.

'LeftKeys' 이름-값 쌍의 인수는 'RightKeys' 이름-값 쌍의 인수와 함께 사용해야 합니다. 'LeftKeys''RightKeys'는 모두 동일한 수의 키 변수를 지정해야 합니다. join은 키 값의 순서에 기초하여 TleftTright의 키 값 쌍을 지정합니다.

행 레이블로 구성된 벡터는 키 변수가 될 수 있습니다. 행 레이블은 테이블의 행 이름 또는 타임테이블의 행 시간값입니다. 'LeftKeys'Tleft의 행 레이블로 지정하거나, Tleft에 포함된 하나 이상의 변수로 지정하거나, 행 레이블과 변수 모두로 지정할 수 있습니다.

예: 'LeftKeys',1Tleft의 첫 번째 변수만 키 변수로 사용합니다.

Tright에서 키로 사용할 변수로, 'RightKeys'와 함께 양의 정수, 양의 정수로 구성된 벡터, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, string형 배열 또는 논리형 벡터가 쉼표로 구분되어 지정됩니다.

'RightKeys' 이름-값 쌍의 인수는 'LeftKeys' 이름-값 쌍의 인수와 함께 사용해야 합니다. 'LeftKeys''RightKeys'는 모두 동일한 수의 키 변수를 지정해야 합니다. join은 키 값의 순서에 기초하여 TleftTright의 키 값 쌍을 지정합니다.

행 레이블로 구성된 벡터는 키 변수가 될 수 있습니다. 행 레이블은 테이블의 행 이름 또는 타임테이블의 행 시간값입니다. 'RightKeys'Tright의 행 레이블로 지정하거나, Tright에 포함된 하나 이상의 변수로 지정하거나, 행 레이블과 변수 모두로 지정할 수 있습니다.

예: 'RightKeys',3Tright의 세 번째 변수만 키 변수로 사용합니다.

T에 포함시킬 Tleft의 변수로, 'LeftVariables'와 함께 양의 정수, 양의 정수로 구성된 벡터, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, string형 배열 또는 논리형 벡터가 쉼표로 구분되어 지정됩니다.

'LeftVariables'를 사용하여 키 변수뿐 아니라 키가 아닌 변수를 T에 포함시키거나 제외할 수 있습니다. 하지만 Tleft의 행 이름 또는 행 시간값은 변수가 아니기 때문에 포함시킬 수 없습니다.

기본적으로 joinTleft의 모든 변수를 포함합니다.

T에 포함시킬 Tright의 변수로, 'RightVariables'와 함께 양의 정수, 양의 정수로 구성된 벡터, 문자형 벡터, 문자형 벡터로 구성된 셀형 배열, string형 배열 또는 논리형 벡터가 쉼표로 구분되어 지정됩니다.

'RightVariables'를 사용하여 키 변수뿐 아니라 키가 아닌 변수를 T에 포함시키거나 제외할 수 있습니다. 하지만 Tright의 행 이름 또는 행 시간값은 변수가 아니기 때문에 포함시킬 수 없습니다.

기본적으로 join은 키 변수를 제외한 Tright의 모든 변수를 포함시킵니다.

joinTleft에서 복사본으로 유지할 변수로, 'KeepOneCopy'와 함께 변수 이름을 지정하는 문자형 벡터, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열이 쉼표로 구분되어 지정됩니다.

키 변수는 T에 한 번만 표시되지만, 같은 이름의 키가 아닌 변수가 TleftTright에 모두 있는 경우 join은 기본적으로 T에 두 복사본을 모두 유지합니다. 'KeepOneCopy' 이름-값 쌍을 사용하면 Tleft의 복사본만 유지할 수 있습니다.

예: 'KeepOneCopy',Var2는 키가 아닌 변수 Var2에 대해 Tleft의 복사본만 유지합니다.

출력 인수

모두 축소

TleftTright의 병합된 데이터로, 테이블 또는 타임테이블로 반환됩니다. 테이블 T에는 Tleft의 각 행에 대응하는 행이 동일한 순서로 포함됩니다.

joinTleft(:,LeftVars)Tright(iright,RightVars)를 가로로 결합하여 T를 만듭니다. 기본적으로 LeftVarsTleft의 모든 변수이고, RightVarsTright의 키가 아닌 모든 변수입니다. 그렇지 않은 경우 LeftVars'LeftVariables' 이름-값 쌍의 인수로 지정된 변수로 구성되며, RightVars'RightVariables' 이름-값 쌍의 인수로 지정된 변수로 구성됩니다.

TleftTright가 같은 이름의 키가 아닌 변수를 포함할 경우, 'KeepOneCopy' 이름-값 쌍의 인수를 지정하지 않는 한 joinT에서 해당 변수 이름에 고유한 접미사를 추가합니다.

Tleft가 테이블이면 T도 테이블입니다. Tleft가 타임테이블이고 Tright가 타임테이블 또는 테이블이면 T는 타임테이블입니다.

설명, 변수 단위, 변수 이름, 행 이름과 같은 메타데이터를 추가로 T에 저장할 수 있습니다. 자세한 내용은 table 또는 timetable 속성 설명을 참조하십시오.

Tright에 대한 인덱스로, 열 벡터로 반환됩니다. iright의 각 요소는 출력 테이블 또는 타임테이블 T의 행에 대응하는 Tright의 행을 식별합니다.

세부 정보

모두 축소

키 변수

입력 테이블 TleftTright 간의 데이터를 일치시키고 결합하는 데 사용되는 변수입니다.

키 값

Tleft 또는 Tright에 있는 키 변수의 값입니다.

알고리즘

join 함수는 먼저 하나 이상의 키 변수를 찾습니다. 그런 다음, join은 키 변수를 사용하여 입력 테이블 Tleft의 각 행과 일치하는 입력 테이블 Tright의 행을 찾고, 이 행들을 결합하여 출력 테이블 T의 행을 만듭니다.

  • TleftTright의 키 값이 일대일로 일치하면 joinTright의 데이터를 정렬한 후 테이블 Tleft에 추가합니다.

  • TleftTright의 키 값이 다대일로 일치하면 joinTright의 데이터를 정렬한 후 테이블 Tleft에 반복 추가합니다.

  • Tleft의 키 값에 일치하지 않는 Tright의 키 변수 데이터는 join이 출력 테이블 T에 포함시키지 않습니다.

확장 기능

R2013b에 개발됨