innerjoin

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

Описание

пример

T = innerjoin(Tleft,Tright) создает таблицу или расписание, T, как внутреннее соединение Tleft и Tright использование ключевых переменных. Все переменные с одинаковыми именами в обоих входах являются ключевыми переменными. Внутреннее соединение объединяет строки, где ключевые переменные имеют совпадающие значения. Для примера, если 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 аргументы в виде пар.

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

пример

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

Примеры

свернуть все

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

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

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 функция для создания новой таблицы, T, с данными из таблиц Tleft и Tright.

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 

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

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

Кроме того, возвращайте векторы индекса, ileft и iright указывает соответствие между строками в T и строки в Tleft и Tright соответственно.

[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').

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

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

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

свернуть все

Левая таблица, заданная как таблица или расписание.

Правая таблица, заданная как таблица или расписание.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

Внутреннее соединение из Tleft и Tright, возвращается как таблица или расписание. Таблица выхода или расписание, T, содержит по одной строке для каждой пары строк в Tleft и Tright которые имеют одну и ту же комбинацию значений в ключевых переменных. Если Tleft и Tright содержат переменные с таким же именем, innerjoin добавляет уникальный суффикс к соответствующим именам переменных в T.

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

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

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

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

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

Подробнее о

свернуть все

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

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

Совет

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

    В целом, innerjoin копирует метки строк из таблицы входа Tleft в таблицу выхода T.

    • Если Tleft не имеет меток строк, тогда T не имеет меток строк.

    • Если Tleft имеет метки строк, затем innerjoin копирует метки строк из Tleft для создания меток строк в T.

      • Однако, если оба Tleft и Tright являются таблицами, но вы не задаете в качестве ключа ни имена строк входной таблицы, тогда innerjoin не создает имена строк в T.

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

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

Введенный в R2013b