innerjoin

Внутреннее объединение между двумя таблицами или расписаниями

Синтаксис

C = innerjoin(A,B)
C = innerjoin(A,B,Name,Value)
[C,ia,ib] = innerjoin(___)

Описание

пример

C = innerjoin(A,B) составляет таблицу или расписание, C, как внутреннее объединение между A и B совпадением строк с помощью всех переменных с теми же именами как ключевые переменные. Например, если A имеет переменные под названием X, Y и Z, и B имеет переменные W, X и Y, то C=innerjoin(A,B) использует X и Y как ключевые переменные.

Можно выполнить внутренние объединения только на определенных комбинациях таблиц и расписаний.

  • Если A является таблицей, то B должен быть таблицей. innerjoin возвращает C как таблицу.

  • Если A является расписанием, то B может быть или таблицей или расписанием. innerjoin возвращает C как расписание для любой комбинации входных параметров.

Внутреннее объединение сохраняет только строки, которые соответствуют между A и B относительно ключевых переменных. C содержит все неключевые переменные от A и B.

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

C = innerjoin(A,B,Name,Value) выполняет операцию внутреннего объединения с дополнительными опциями, заданными одним или несколькими аргументами пары Name,Value.

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

пример

[C,ia,ib] = innerjoin(___) также возвращает индексные векторы, ia и ib, указывающий на соответствие между строками в C и теми в A и B соответственно. Можно использовать этот синтаксис с любым из входных параметров в предыдущих синтаксисах.

Примеры

свернуть все

Составьте таблицу, A.

A = table([5;12;23;2;6],...
    {'cereal';'pizza';'salmon';'cookies';'pizza'},...
    'VariableNames',{'Age','FavoriteFood'})
A=5×2 table
    Age    FavoriteFood
    ___    ____________

     5      'cereal'   
    12      'pizza'    
    23      'salmon'   
     2      'cookies'  
     6      'pizza'    

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

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

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

Используйте функцию innerjoin, чтобы составить новую таблицу, C, с данными из таблиц A и B.

C = innerjoin(A,B)
C=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'      

Таблица C сортируется по ключевой переменной, FavoriteFood.

Составьте таблицу, A.

A = table({'a' 'b' 'c' 'e' 'h'}',[1 2 3 11 17]',...
    'VariableNames',{'Key1' 'Var1'})
A=5×2 table
    Key1    Var1
    ____    ____

    'a'       1 
    'b'       2 
    'c'       3 
    'e'      11 
    'h'      17 

Составьте таблицу, B, с общими ценностями в переменной Key1 между таблицами A и B, но также и содержащий строки со значениями Key1, не существующего в A.

B = table({'a' 'b' 'd' 'e'}',[4 5 6 7]',...
    'VariableNames',{'Key1' 'Var2'})
B=4×2 table
    Key1    Var2
    ____    ____

    'a'      4  
    'b'      5  
    'd'      6  
    'e'      7  

Используйте функцию innerjoin, чтобы составить новую таблицу, C, с данными из таблиц A и B. Сохраните только строки, значения которых в переменной Key1 соответствуют.

Кроме того, возвратите индексные векторы, ia и ib, указывающий на соответствие между строками в C и строками в A и B соответственно.

[C,ia,ib] = innerjoin(A,B)
C=3×3 table
    Key1    Var1    Var2
    ____    ____    ____

    'a'       1      4  
    'b'       2      5  
    'e'      11      7  

ia = 3×1

     1
     2
     4

ib = 3×1

     1
     2
     4

Таблица C сортируется по значениям в ключевой переменной, Key1, и содержит горизонтальную конкатенацию A(ia,:) и B(ib,'Var2').

Составьте таблицу, A.

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

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

Составьте таблицу, B, с общими ценностями во второй переменной как первая переменная таблицы A.

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

     6       2  
     1       3  
     1       4  
     6       5  
     8       6  

Используйте функцию innerjoin, чтобы составить новую таблицу, C, с данными из таблиц A и B. Используйте первую переменную A и вторую переменную B как ключевые переменные.

[C,ia,ib] = innerjoin(A,B,'LeftKeys',1,'RightKeys',2)
C=3×4 table
    Var1_A    Var2    Var3    Var1_B
    ______    ____    ____    ______

      2        9       8        6   
      3        6       8        1   
      4        4       3        1   

ia = 3×1

     3
     4
     2

ib = 3×1

     1
     2
     3

Таблица C сохраняет только строки, которые соответствуют между A и B относительно ключевых переменных.

Таблица C содержит горизонтальную конкатенацию A(ia,:) и B(ib,'Var1').

Создайте два расписания, A и B. У них есть несколько раз строки общий, но каждый также включает времена строки, которые не находятся в другом расписании.

A = timetable(seconds([1;2;4;6]),[1 2 3 11]')
A=4×2 timetable
    Time     Var1
    _____    ____

    1 sec      1 
    2 sec      2 
    4 sec      3 
    6 sec     11 

B = timetable(seconds([2;4;6;7]),[4 5 6 7]')
B=4×2 timetable
    Time     Var1
    _____    ____

    2 sec     4  
    4 sec     5  
    6 sec     6  
    7 sec     7  

Объедините A и B с внутренним объединением. C подходит строки с общими временами строки. C не содержит никакие другие строки ни из одного расписания.

C = innerjoin(A,B)
C=3×3 timetable
    Time     Var1_A    Var1_B
    _____    ______    ______

    2 sec       2        4   
    4 sec       3        5   
    6 sec      11        6   

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

свернуть все

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

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

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

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

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

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

Вектор меток строки может быть ключевым, один или в сочетании с другими ключевыми переменными. Для получения дополнительной информации смотрите раздел Tips.

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

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

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

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

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

Вектор меток строки может быть ключевым, один или в сочетании с другими ключевыми переменными.. Для получения дополнительной информации смотрите раздел Tips.

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

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

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

Вектор меток строки может быть ключевым, один или в сочетании с другими ключевыми переменными.. Для получения дополнительной информации смотрите раздел Tips.

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

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

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

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

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

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

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

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

свернуть все

Внутреннее объединение от A и B, возвращенного как таблица или расписание. Выходная таблица или расписание, C, содержат одну строку для каждой пары строк в A и B, которые совместно используют ту же комбинацию значений в ключевых переменных. Если A и B содержат переменные с тем же именем, innerjoin добавляет уникальный суффикс в соответствующие имена переменных в C.

В целом, если существуют строки m в A и строки n в B, что все содержат ту же комбинацию значений в ключевых переменных, затем C содержит строки m*n для той комбинации.

C сортируется по значениям в ключевых переменных и содержит горизонтальную конкатенацию A(ia,LeftVars) и B(ib,RightVars). По умолчанию LeftVars состоит из всех переменных A, и RightVars состоит из всех неключевых переменных из B. В противном случае LefttVars состоит из переменных, заданных аргументом пары "имя-значение" 'LeftVariables', и RightVars является переменными, заданными аргументом пары "имя-значение" 'RightVariables'.

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

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

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

Больше о

свернуть все

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

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

Советы

Вектор меток строки из входной таблицы или расписания может быть ключевым, один или в сочетании с другими ключевыми переменными. Метки строки являются именами строки таблицы или времена строки расписания. Чтобы использовать этот вектор в качестве ключа, задайте его как 'Row' (для имен строки таблицы) как имя вектора расписания времен строки, или как значение T.Properties.DimensionNames{1}, где T является таблицей или расписанием.

В целом innerjoin копирует метки строки с входной таблицы A к выходной таблице C.

  • Если A не имеет никаких меток строки, то C не имеет никаких меток строки.

  • Если A имеет метки строки, то innerjoin копирует метки строки с A, чтобы создать метки строки в C.

    • Однако, если и A и B являются таблицами, но вы не задаете имена строки ни одной входной таблицы как ключ, затем innerjoin не создает имена строки в C.

Вы не можете выполнить внутреннее объединение с помощью меток строки A как левый ключ и переменная B как правильный ключ. Чтобы выполнить внутреннее объединение, преобразуйте метки строки A к табличной переменной и используйте новую табличную переменную в качестве ключа.

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

Смотрите также

|

Введенный в R2013b

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