setdiff

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

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

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

Синтаксис

C = setdiff(A,B)
C = setdiff(A,B,vars)
C = setxor(A,B,vars,setOrder)
[C,iA] = setxor(___)

Описание

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

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

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

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

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

A,B

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

vars

Массив строк или массив ячеек из символьных векторов, содержащий имена переменных или вектор целых чисел, содержащих числа переменного столбца. vars указывает на переменные что setdiff рассматривает.

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

setOrder

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

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

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

C

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

iA

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

Примеры

развернуть все

Создайте скалярный массив структур, и затем преобразуйте его в два массива набора данных.

S(1,1).Name = 'CLARK';
S(1,1).Gender = 'M';
S(1,1).SystolicBP = 124;
S(1,1).DiastolicBP = 93;

S(2,1).Name = 'BROWN';
S(2,1).Gender = 'F';
S(2,1).SystolicBP = 122;
S(2,1).DiastolicBP = 80;

S(3,1).Name = 'MARTIN';
S(3,1).Gender = 'M';
S(3,1).SystolicBP = 130;
S(3,1).DiastolicBP = 92;

A = struct2dataset(S(1:2));
B = struct2dataset(S(2:3));

Пересечение A и B второе наблюдение, с фамилией BROWN.

Возвратите разность множеств A и B.

[C,iA] = setdiff(A,B)
C = 
    Name             Gender       SystolicBP    DiastolicBP
    {'CLARK'}        {'M'}        124           93         

iA = 1

Первое наблюдение в A не присутствует в B.