В этом примере показано, как объединить два категориальных массивов.
Создайте категориальный массив, A
, содержащий предпочтительный обеденный напиток 25 студентов в классе А.
rng('default') A = randi(3,[25,1]); A = categorical(A,1:3,{'milk' 'water' 'juice'});
A
представляет собой категориальный массив 25 на 1 с тремя различными категориями: milk
, water
, и juice
.
Результирующие категориальные массивы, A
.
summary(A)
milk 6 water 5 juice 14
Шесть учащихся в классе А предпочитают молоко, пятеро предпочитают воду, а четырнадцать предпочитают сок.
Создайте другой категориальный массив, B
, содержащий настройки 28 учащихся в классе B.
B = randi(3,[28,1]); B = categorical(B,1:3,{'milk' 'water' 'juice'});
B
- категориальный массив 28 на 1, содержащий те же категории, что и A
.
Результирующие категориальные массивы, B
.
summary(B)
milk 9 water 8 juice 11
Девять учащихся в классе B предпочитают молоко, восемь предпочитают воду и одиннадцать предпочитают сок.
Объедините данные из аудиторий A и B в один категориальный массив, Group1
.
Group1 = [A;B];
Результирующие категориальные массивы, Group1
summary(Group1)
milk 15 water 13 juice 25
Group1
представляет собой категориальный массив 53 на 1 с тремя категориями: milk
, water
, и juice
.
Создайте категориальный массив, Group2
, содержащий данные от 50 студентов, которым была предоставлена дополнительная опция напитка соды.
Group2 = randi(4,[50,1]); Group2 = categorical(Group2,1:4,{'juice' 'milk' 'soda' 'water'});
Результирующие категориальные массивы, Group2
.
summary(Group2)
juice 12 milk 14 soda 10 water 14
Group2
представляет собой категориальный массив 50 на 1 с четырьмя категориями: juice
, milk
, soda
, и water
.
Конкатенация данных из Group1
и Group2
.
students = [Group1;Group2];
Результирующий категориальный массив, students
.
summary(students)
milk 29 water 27 juice 37 soda 10
Конкатенация добавляет категории, исключающие второй вход, soda
, в конец списка категорий от первого входа, milk
, water
, juice
, soda
.
Использование reordercats
чтобы изменить порядок категорий в категориальном массиве, students
.
students = reordercats(students,{'juice','milk','water','soda'}); categories(students)
ans = 4x1 cell
{'juice'}
{'milk' }
{'water'}
{'soda' }
Используйте функцию union
чтобы найти уникальные ответы от Group1
и Group2
.
C = union(Group1,Group2)
C = 4x1 categorical
milk
water
juice
soda
union
возвращает объединенные значения из Group1
и Group2
без повторений. В этом случае C
эквивалентно категориям конкатенации, students
.
Все категориальные массивы в этом примере были неординальными. Чтобы объединить порядковые категориальные массивы, они должны иметь одинаковые наборы категорий, включая их порядок.
cat
| categorical
| categories
| horzcat
| summary
| union
| vertcat