setdiff

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

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

The 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.