intersect

Класс: набор данных

(Не Рекомендуемый) Задать пересечение для наблюдений массива набора данных

The dataset тип данных не рекомендуется. Для работы с неоднородными данными используйте MATLAB® table вместо этого тип данных. См. MATLAB table документация для получения дополнительной информации.

Синтаксис

C = intersect(A,B)
C = intersect(A,B,vars)
C = intersect(A,B,vars,setOrder)
[C,iA,iB] = intersect(___)

Описание

C = intersect(A,B) для dataset массивы A и B возвращает общий набор наблюдений из двух массивов с удаленными повторениями. Наблюдения в массиве набора данных C находятся в сортированном порядке.

C = intersect(A,B,vars) возвращает набор общих наблюдений из двух массивов, принимая во внимание только переменные, заданные в vars, с удаленными повторениями. Наблюдения в массиве набора данных C сортируются по этим переменным.

Значения для переменных, не заданные в vars для каждого наблюдения в C взяты из соответствующих наблюдений в A. Если есть несколько наблюдений в A которые соответствуют наблюдению в Cзатем эти значения берутся из первого вхождения.

C = intersect(A,B,vars,setOrder) возвращает наблюдения в C в порядке, заданном setOrder.

[C,iA,iB] = intersect(___) также возвращает векторы индекса iA и iB таким образом C = A(iA,:) и C = B(iB,:). Если есть повторные наблюдения в A или B, затем intersect возвращает индекс первого вхождения. Можно использовать любой из предыдущих входных параметров.

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

A,B

Входные массивы набора данных.

vars

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

Задайте vars как [] использовать его значение по умолчанию для всех переменных.

setOrder

Флаг, указывающий порядок сортировки для наблюдений в C. Возможные значения setOrder являются:

'sorted'Наблюдения в C находятся в сортированном порядке (по умолчанию).
'stable'Наблюдения в C находятся в том же порядке, в котором они появляются A.

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

C

Массив набора данных с общим набором наблюдений в A и B, с удаленными повторениями. C находится в сортированном порядке (по умолчанию) или в порядке, заданном setOrder.

iA

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

iB

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

Примеры

расширить все

Загрузите выборочные данные.

A = dataset('XLSFile',fullfile(matlabroot,'help/toolbox/stats/examples','hospitalSmall.xlsx'));
B = dataset('XLSFile',fullfile(matlabroot,'help/toolbox/stats/examples','hospitalSmall.xlsx'),'Sheet',2);

Верните векторы пересечения и индекса.

[C,iA,iB] = intersect(A,B);
C = 

    id               name           sex        age    wgt    smoke
    'TRW-072'        'WHITE'        'm'        39     202    1    

Существует одно общее наблюдение между A и B.

Найдите наблюдение в исходных массивах набора данных.

A(iA,:)
ans = 

    id               name           sex        age    wgt    smoke
    'TRW-072'        'WHITE'        'm'        39     202    1    

B(iB,:)
ans = 

    id               name           sex        age    wgt    smoke
    'TRW-072'        'WHITE'        'm'        39     202    1