Класс: набор данных
(Не Рекомендуемый) Объединить наблюдения
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соединение выполняет слияние первыми ключевыми переменными открытия, то есть, парами переменных набора данных, один в A и один в B, та доля то же имя. Каждое наблюдение в B должен содержать уникальную комбинацию значений в ключевых переменных и должен содержать все комбинации значений, которые присутствуют в ключах от Aсоединение затем использование эти ключевые переменные, чтобы задать many-one соответствие между наблюдениями в A и те в Bсоединение использование это соответствие, чтобы реплицировать наблюдения в 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