join

Объедините две таблицы или расписания ключевыми переменными использования строк

Описание

пример

T = join(Tleft,Tright) таблицы объединений или расписания Tleft и Tright использование ключевых переменных. Все переменные с теми же именами в обеих таблицах являются ключевыми переменными. Табличное соединение добавляет строки из правильной таблицы, где ее ключевые переменные совпадают со значениями в ключевых переменных стола, из-за которого встают. Например, если Tleft имеет переменные под названием Key1 и Var1, и Tright имеет переменные Key1 и Var2, затем T=join(Tleft,Tright) использование Key1 как ключевая переменная.

Совпадающие значения ключевых переменных в левых и правых таблицах не должны быть в том же порядке. Кроме того, ключевые переменные Tright должен содержать все значения в ключевых переменных Tleft. Каждое значение должно произойти только однажды в ключевых переменных Tright, но может произойти многократно в ключевых переменных Tleft.

Входные параметры могут быть таблицами, расписаниями или одним из каждого.

  • Если Tleft таблица, затем join возвращает T как таблица.

  • Если Tleft расписание, затем join возвращает T как расписание.

Векторы меток строки Tleft и Tright могут быть ключевые переменные. Метки строки являются именами строки таблицы, или времена строки расписания.

пример

T = join(Tleft,Tright,Name,Value) соединяет таблицы или расписания с дополнительными опциями, заданными одним или несколькими Name,Value парные аргументы.

Например, можно задать который переменные использовать в качестве ключевых переменных.

пример

[T,iright] = join(___) также возвращает вектор индекса iright таким образом, что каждый элемент iright идентифицирует строку в Tright это соответствует той строке в T. Можно использовать этот синтаксис с любым из входных параметров предыдущих синтаксисов.

Примеры

свернуть все

Составьте таблицу, 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     

Составьте таблицу, Tright, с переменной вместе с Tleft.

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

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

Составьте новую таблицу, T, содержа данные из таблиц Tleft и Tright. Используйте join функционируйте, чтобы повторить и добавить Manager данные из таблицы Tright к данным из таблицы Tleft, на основе ключевой переменной, Department.

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'  } 

Составьте таблицу, Tright, с одной переменной вместе с Tleft.

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-'}    

Составьте новую таблицу, T, с данными из таблиц Tleft и Tright. Переменная вместе, FavoriteFood, используется в качестве ключевой переменной join функция.

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 

Составьте таблицу, Tright, предоставление Var2 из таблицы Tright то же содержимое как Var2 из таблицы Tleft.

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  

Составьте новую таблицу, T, содержа данные из таблиц Tleft и Tright. Используйте Var2 в таблицах Tleft и Tright как ключевая переменная к join функция.

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, отличать данные из таблиц Tleft и Tright.

Составьте новую таблицу с данными из таблиц Tleft и Tright. Если какие-либо неключевые переменные имеют то же имя в обеих таблицах, сохраните только копию с таблицы 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  

Составьте таблицу, Tright, предоставление Var2 из таблицы Tright то же содержимое как Var2 из таблицы Tleft.

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 

Составьте новую таблицу, T, с данными из таблиц Tleft и Tright. Используйте Var2 как ключевая переменная к join функционируйте и сохраните только копию Var1 из таблицы Tleft. Выходная таблица T не содержит Var1 данные из таблицы Tright.

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  

Составьте новую таблицу, T, с данными из таблиц Tleft и Tright. Используйте векторы имен строки как ключевые переменные. (Именем вектора имен строки таблицы является 'Row', как показано Tleft.Properties.DimensionNames{1}.)

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  

Строки T находятся в том же порядке как 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 

Составьте таблицу, Tright, предоставление Var2 из таблицы Tright то же содержимое как Var1 из таблицы Tleft, но в различном порядке.

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 

Составьте новую таблицу, T, содержа данные из таблиц Tleft и Tright. Используйте Var1 из таблицы Tleft с Var2 из таблицы Tright как ключевые переменные к 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

T горизонтальная конкатенация Tleft и Tright(iright,1).

Создайте два расписания, которые имеют те же времена строки, но различные переменные.

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  

Объедините расписание и таблицу. Device ключевая переменная потому что оба Tleft и Tright имейте переменную с тем именем. 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  

Входные параметры

свернуть все

Стол, из-за которого встают, заданный как таблица или расписание. Для всех ключевых переменных, каждой строки Tleft должен совпадать точно с одной строкой в Tright.

Правильная таблица, заданная как таблица или расписание. Для всех ключевых переменных, каждой строки Tright должен совпадать точно с одной строкой в Tleft.

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Keys',2 использует вторую переменную в Tleft и вторая переменная в Tright как ключевые переменные.

Переменные, чтобы использовать в качестве ключей, заданных как разделенная запятой пара, состоящая из 'Keys' и положительное целое число, вектор положительных целых чисел, вектора символов, массива ячеек из символьных векторов, массива строк, логического вектора или 'RowNames'.

Вы не можете использовать 'Keys' аргумент пары "имя-значение" с 'LeftKeys' и 'RightKeys' аргументы в виде пар имя-значение.

Вектор меток строки может быть ключевой переменной. Метки строки являются именами строки таблицы или времена строки расписания. Можно задать 'Keys' когда строка помечает только как одна или несколько переменных в Tleft и Tright, или как метки строки и переменные вместе.

Пример: 'Keys',[1 3] использует первые и третьи переменные из Tleft и Tright как ключевые переменные.

Пример: 'Keys',{'X','Y'} использует переменные под названием X и Y в Tleft и Tright как ключевые переменные.

Пример: 'Keys','Row' использует векторы имен строки Tleft и Tright как ключевые переменные, если оба Tleft и Tright таблицы с именами строки.

Переменные, чтобы использовать в качестве ключей в Tleft, заданный как разделенная запятой пара, состоящая из 'LeftKeys' и положительное целое число, вектор положительных целых чисел, вектора символов, массива ячеек из символьных векторов, массива строк или логического вектора.

Необходимо использовать 'LeftKeys' аргумент пары "имя-значение" в сочетании с 'RightKeys' аргумент пары "имя-значение". 'LeftKeys' и 'RightKeys' оба должны задать то же количество ключевых переменных. join значения ключа пар в Tleft и Tright на основе их порядка.

Вектор меток строки может быть ключевой переменной. Метки строки являются именами строки таблицы или времена строки расписания. Можно задать 'LeftKeys' как метки строки Tleft, как одна или несколько переменных в Tleft, или как метки строки и переменные вместе.

Пример: 'LeftKeys',1 использование только первая переменная в Tleft как ключевая переменная.

Переменные, чтобы использовать в качестве ключей в Tright, заданный как разделенная запятой пара, состоящая из 'RightKeys' и положительное целое число, вектор положительных целых чисел, вектора символов, массива ячеек из символьных векторов, массива строк или логического вектора.

Необходимо использовать 'RightKeys' аргумент пары "имя-значение" в сочетании с 'LeftKeys' аргумент пары "имя-значение". 'LeftKeys' и 'RightKeys' оба должны задать то же количество ключевых переменных. join значения ключа пар в Tleft и Tright на основе их порядка.

Вектор меток строки может быть ключевой переменной. Метки строки являются именами строки таблицы или времена строки расписания. Можно задать 'RightKeys' как метки строки Tright, как одна или несколько переменных в Tright, или как метки строки и переменные вместе.

Пример: 'RightKeys',3 использование только третья переменная в Tright как ключевая переменная.

Переменные из Tleft включать в T, заданный как разделенная запятой пара, состоящая из 'LeftVariables' и положительное целое число, вектор положительных целых чисел, вектора символов, массива ячеек из символьных векторов, массива строк или логического вектора.

Можно использовать 'LeftVariables' включать или исключить ключевые переменные, а также неключевые переменные, от T. Однако вы не можете включить имена строк или времена строки от Tleft, потому что они не переменные.

По умолчанию, join включает все переменные из Tleft.

Переменные из Tright включать в T, заданный как разделенная запятой пара, состоящая из 'RightVariables' и положительное целое число, вектор положительных целых чисел, вектора символов, массива ячеек из символьных векторов, массива строк или логического вектора.

Можно использовать 'RightVariables' включать или исключить ключевые переменные, а также неключевые переменные, от T. Однако вы не можете включить имена строк или времена строки от Tright, потому что они не переменные.

По умолчанию, join включает все переменные из Tright кроме ключевых переменных.

Переменные, для который join сохраняет только копию с Tleft, заданный как разделенная запятой пара, состоящая из 'KeepOneCopy' и вектор символов, массив ячеек из символьных векторов или массив строк, который задает имена переменных.

Ключевые переменные появляются однажды в T, но если неключевые переменные с идентичными именами происходят в Tleft и Tright, затем join сохраняет обе копии в T по умолчанию. Используйте 'KeepOneCopy' пара "имя-значение", чтобы сохранить только копию с Tleft.

Пример: 'KeepOneCopy',Var2 сохраняет только копию с Tleft из неключевой переменной Var2.

Выходные аргументы

свернуть все

Объединенные данные из Tleft и Tright, возвращенный как таблица или расписание. Таблица, T, содержит одну строку для каждой строки в Tleft, появление в том же порядке.

join создает T путем горизонтальной конкатенации Tleft(:,LeftVars) и Tright(iright,RightVars). По умолчанию, LeftVars все переменные Tleft, и RightVars все неключевые переменные из Tright. В противном случае, LeftVars состоит из переменных, заданных 'LeftVariables' аргумент пары "имя-значение" и RightVars состоит из переменных, заданных 'RightVariables' аргумент пары "имя-значение".

Если Tleft и Tright содержите неключевые переменные с тем же именем, join добавляет уникальный суффикс к соответствующим именам переменных в T, если вы не задаете 'KeepOneCopy' аргумент пары "имя-значение".

Если Tleft таблица, затем T также таблица. Если Tleft расписание и Tright или расписание или таблица, затем T расписание.

Можно сохранить дополнительные метаданные в T, такой как описания, переменные модули, имена переменных и имена строки. Для получения дополнительной информации смотрите разделы Свойств table или timetable.

Индексируйте к Tright, возвращенный как вектор-столбец. Каждый элемент iright идентифицирует строку в Tright это соответствует той строке в выходной таблице или расписании, T.

Больше о

свернуть все

Ключевая переменная

Переменная раньше совпадала и комбинировала данные между входными таблицами Tleft и Tright.

'KeyValue'

Значение в ключевой переменной Tleft или Tright.

Алгоритмы

join функционируйте сначала находит одну или несколько ключевых переменных. Затем join использует ключевые переменные, чтобы найти строку во входной таблице Tright это совпадает с каждой строкой во входной таблице Tleft, и объединения те строки, чтобы создать строку в выходной таблице T.

  • Если существует взаимно-однозначное отображение между значениями ключа в Tleft и Tright, затем join сортирует данные в Tright и добавляет его к таблице Tleft.

  • Если существует отображение many-one между значениями ключа в Tleft и Tright, затем join виды и повторения данные в Tright прежде, чем добавить его к таблице Tleft.

  • Если существуют данные в ключевой переменной Tright это не сопоставляет со значением ключа в Tleft, затем join не включает те данные в выходную таблицу, T.

Расширенные возможности

Введенный в R2013b

Для просмотра документации необходимо авторизоваться на сайте