exponenta event banner

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 , которая соответствует этой строке в выходной таблице или расписании, T.

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

Подробнее

свернуть все

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

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

Совет

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

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

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

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

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

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

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

Представлен в R2013b