Класс: набор данных
(Не Рекомендуемый) объединение наблюдений массивов данных
dataset
тип данных не рекомендуется. Чтобы работать с гетерогенными данными, используйте MATLAB®
table
тип данных вместо этого. Смотрите MATLAB table
документация для получения дополнительной информации.
C = join(A,B)
C = join(A,B,keys)
C = join(A,B,param1
,val1
,param2
,val2
,...)
[C,IB] = join(...)
C = join(A,B,'Type',TYPE,...)
C = join(A,B,'Type',TYPE,'MergeKeys',true,...)
[C,IA,IB] = join(A,B,'Type',TYPE,...)
C = join(A,B)
создает массив набора данных C
путем слияния наблюдений от двух массивов набора данных A
и B
. join
выполняет слияние первыми ключевыми переменными открытия, то есть, парами переменных набора данных, один в A
и один в B
, та доля то же имя. Каждое наблюдение в B
должен содержать уникальную комбинацию значений в ключевых переменных и должен содержать все комбинации значений, которые присутствуют в ключах от A
. join
затем использование эти ключевые переменные, чтобы задать many-one соответствие между наблюдениями в A
и те в B
. join
использование это соответствие, чтобы реплицировать наблюдения в B
и объедините их с наблюдениями в A
создать C
.
C = join(A,B,keys)
выполняет слияние с помощью переменных, заданных keys
как ключевые переменные в обоих A
и B
ключи
положительное целое число, вектор из положительных целых чисел, вектора символов, массива строк, массива ячеек из символьных векторов или логического вектора.
C
содержит одно наблюдение для каждого наблюдения в A
. Переменные в C
включайте все переменные из A
, а также одна переменная, соответствующая каждой переменной в B
(за исключением ключей от B
). Если A
и B
содержите переменные с идентичными именами, join
добавляет суффиксный '_left'
и '_right'
к соответствующим переменным в C
.
C = join(A,B,
задает дополнительное название параметра / пары значения, чтобы управлять как переменные набора данных в param1
,val1
,param2
,val2
,...)A
и B
используются в слиянии. Параметры:
'Keys'
— Задает переменные, чтобы использовать в качестве ключей в обоих A
и B
.
'LeftKeys'
— Задает переменные, чтобы использовать в качестве ключей в A
.
'RightKeys'
— Задает переменные, чтобы использовать в качестве ключей в B
.
Можно предоставить любому 'Keys'
параметр или оба 'LeftKeys'
и 'RightKeys'
параметры. Значение для этих параметров является положительным целым числом, вектором из положительных целых чисел, вектора символов, массива строк, массива ячеек из символьных векторов или логического вектора. 'LeftKeys'
или 'RightKeys'
должен и задать то же количество ключевых переменных и join
соединяет левые и правые ключи в заданном порядке.
'LeftVars'
— Задает который переменные из A
включать в C
. По умолчанию, join
включает все переменные из A
.
'RightVars'
— Задает который переменные из B
включать в C
. По умолчанию, join
включает все переменные из B
кроме ключевых переменных.
Можно использовать 'LeftVars'
или 'RightVars'
включать или исключить ключевые переменные, а также переменные данных. Значение для этих параметров является положительным целым числом, вектором из положительных целых чисел, вектора символов, массива строк, массива ячеек из символьных векторов или логического вектора.
[C,IB] = join(...)
возвращает вектор индекса IB
, где join
построения C
путем горизонтальной конкатенации A(:,LeftVars)
и B(IB,RightVars)
соединение
может также выполнить более сложное внутреннее объединение и операции внешнего соединения, которые позволяют many-many соответствие между A
и B
, и позвольте несопоставленные наблюдения в любом A
или B
.
C = join(A,B,'Type',TYPE,...)
выполняет операцию соединения, заданную TYPE
Ввод
один из 'inner'
, 'leftouter'
, 'rightouter'
, 'fullouter'
, или 'outer'
(который является синонимом для 'fullouter'
). Для внутреннего объединения, C
только содержит наблюдения, соответствующие комбинации значений ключа, которые произошли в обоих A
и B
. Для левого (или право) внешнее соединение, C
также содержит наблюдения, соответствующие ключам в A
(или B
) это не совпадало ни с кем в B
(или A
). Переменные в C
взятый из A
(или B
) содержите нулевые значения в тех наблюдениях. Полное внешнее соединение эквивалентно левому и правому внешнему соединению. C
содержит переменные, соответствующие ключевым переменным из обоих A
и B
, и join
сортирует наблюдения в C
значениями ключа.
Для внутренних объединений и внешних соединений, C
содержит переменные, соответствующие ключевым переменным из обоих A
и B
по умолчанию, а также все остающиеся переменные. join
сортирует наблюдения в результате C
значениями ключа.
C = join(A,B,'Type',TYPE,'MergeKeys',true,...)
включает одну переменную в C
для каждой ключевой переменной пары от A
и B
, вместо включения двух отдельных переменных. Для внешних соединений, join
создает одну переменную путем слияния значений ключа от A
и B
, принимающие значения от A
где соответствующее наблюдение существует в A
, и от B
в противном случае. Установка 'MergeKeys'
параметр к true
включение переопределений или исключение любых ключевых переменных заданы через 'LeftVars'
или 'RightVars'
параметр. Установка 'MergeKeys'
параметр к false
эквивалентно не передаче в 'MergeKeys'
параметр.
[C,IA,IB] = join(A,B,'Type',TYPE,...)
возвращает векторы индекса IA
и IB
указание на соответствие между наблюдениями в C
и те в A
и B
. Для внутреннего объединения, join
построения C
путем горизонтальной конкатенации A(IA,LeftVars)
и B(IB,RightVars)
. Для внешнего соединения, IA
или IB
май также содержит нули, указывая на наблюдения в C
это не соответствует наблюдениям в A
или B
, соответственно.
Создайте массив набора данных из ирисовых данных Фишера:
load fisheriris NumObs = size(meas,1); NameObs = strcat({'Obs'},num2str((1:NumObs)','%-d')); iris = dataset({nominal(species),'species'},... {meas,'SL','SW','PL','PW'},... 'ObsNames',NameObs);
Создайте разделять массив набора данных с диплоидными счетами хромосомы для каждой разновидности ирисовой диафрагмы:
snames = nominal({'setosa';'versicolor';'virginica'}); CC = dataset({snames,'species'},{[38;108;70],'cc'}) CC = species cc setosa 38 versicolor 108 virginica 70
Широковещательно передайте данные в CC
к строкам iris
использование ключевой переменной species
в каждом наборе данных:
iris2 = join(iris,CC); iris2([1 2 51 52 101 102],:) ans = species SL SW PL PW cc Obs1 setosa 5.1 3.5 1.4 0.2 38 Obs2 setosa 4.9 3 1.4 0.2 38 Obs51 versicolor 7 3.2 4.7 1.4 108 Obs52 versicolor 6.4 3.2 4.5 1.5 108 Obs101 virginica 6.3 3.3 6 2.5 70 Obs102 virginica 5.8 2.7 5.1 1.9 70
Создайте два набора данных и соедините их использующий 'MergeKeys'
флаг:
% Create two data sets that both contain the key variable % 'Key1'. The two arrays contain observations with common % values of Key1, but each array also contains observations % with values of Key1 not present in the other. a = dataset({'a' 'b' 'c' 'e' 'h'}',[1 2 3 11 17]',... 'VarNames',{'Key1' 'Var1'}) b = dataset({'a' 'b' 'd' 'e'}',[4 5 6 7]',... 'VarNames',{'Key1' 'Var2'}) % Combine a and b with an outer join, which matches up % observations with common key values, but also retains % observations whose key values don't have a match. % Keep the key values as separate variables in the result. couter = join(a,b,'key','Key1','Type','outer') % Join a and b, merging the key values as a single variable % in the result. coutermerge = join(a,b,'key','Key1','Type','outer',... 'MergeKeys',true) % Join a and b, retaining only observations whose key % values match. cinner = join(a,b,'key','Key1','Type','inner',... 'MergeKeys',true) a = Key1 Var1 'a' 1 'b' 2 'c' 3 'e' 11 'h' 17 b = Key1 Var2 'a' 4 'b' 5 'd' 6 'e' 7 couter = Key1_left Var1 Key1_right Var2 'a' 1 'a' 4 'b' 2 'b' 5 'c' 3 '' NaN '' NaN 'd' 6 'e' 11 'e' 7 'h' 17 '' NaN coutermerge = Key1 Var1 Var2 'a' 1 4 'b' 2 5 'c' 3 NaN 'd' NaN 6 'e' 11 7 'h' 17 NaN cinner = Key1 Var1 Var2 'a' 1 4 'b' 2 5 'e' 11 7