Добавление и Удаление строк таблицы

Этот пример показывает, как добавить и удалить строки в таблице. Можно также отредактировать таблицы с помощью Редактора Переменных.

Загрузка демонстрационных данных

Загрузите демонстрационные данные пациентов и составьте таблицу, T.

load patients
T = table(LastName,Gender,Age,Height,Weight,Smoker,Systolic,Diastolic);
size(T)
ans = 1×2

   100     8

Таблица, T, имеет 100 строк и восемь переменных (столбцы).

Добавление строк конкатенацией

Считайте данные на большем количестве пациентов от файла разделенных запятыми значений, morePatients.csv, в таблицу, T2. Затем добавьте строки от T2 в конец таблицы, T.

T2 = readtable('morePatients.csv');
Tnew = [T;T2];
size(Tnew)
ans = 1×2

   104     8

Таблица Tnew имеет 104 строки. По порядку, чтобы вертикально конкатенировать две таблицы, обе таблицы должны иметь то же количество переменных с теми же именами переменных. Если имена переменных отличаются, можно непосредственно присвоить новые строки в таблице к строкам из другой таблицы. Например, T(end+1:end+4,:) = T2.

Добавление строк от массива ячеек

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

cellPatients = {'Edwards','Male',42,70,158,0,116,83;
                'Falk','Female',28,62,125,1,120,71};
Tnew = [Tnew;cellPatients];
size(Tnew)
ans = 1×2

   106     8

Также можно преобразовать массив ячеек в таблицу с помощью функции cell2table.

Добавление строк от структуры

Также можно добавить новые строки, сохраненные в структуре. Преобразуйте структуру в таблицу, и затем конкатенируйте таблицы.

structPatients(1,1).LastName = 'George';
structPatients(1,1).Gender = 'Male';
structPatients(1,1).Age = 45;
structPatients(1,1).Height = 76;
structPatients(1,1).Weight = 182;
structPatients(1,1).Smoker = 1;
structPatients(1,1).Systolic = 132;
structPatients(1,1).Diastolic = 85;

structPatients(2,1).LastName = 'Hadley';
structPatients(2,1).Gender = 'Female';
structPatients(2,1).Age = 29;
structPatients(2,1).Height = 58;
structPatients(2,1).Weight = 120;
structPatients(2,1).Smoker = 0;
structPatients(2,1).Systolic = 112;
structPatients(2,1).Diastolic = 70;

Tnew = [Tnew;struct2table(structPatients)];
size(Tnew)
ans = 1×2

   108     8

Исключение дублирующихся строк

Чтобы не использовать любые строки в таблице, которые дублированы, используйте функцию unique.

Tnew = unique(Tnew);
size(Tnew)
ans = 1×2

   106     8

unique удалил две дублирующихся строки.

Удаление строк номером строки

Удалите строки 18, 20, и 21 из таблицы.

Tnew([18,20,21],:) = [];
size(Tnew)
ans = 1×2

   103     8

Таблица содержит информацию о 103 пациентах теперь.

Удаление строк именем строки

Во-первых, задайте переменную идентификаторов, LastName, как имена строки. Затем удалите переменную, LastName, от Tnew. Наконец, используйте имя строки, чтобы индексировать и удалить строки.

Tnew.Properties.RowNames = Tnew.LastName;
Tnew.LastName = [];
Tnew('Smith',:) = [];
size(Tnew)
ans = 1×2

   102     7

Таблица теперь имеет тот меньше строки и один меньше переменной.

Поиск строк, чтобы удалить

Также можно искать наблюдения в таблице. Например, удалите строки для любых пациентов моложе 30.

toDelete = Tnew.Age < 30;
Tnew(toDelete,:) = [];
size(Tnew)
ans = 1×2

    85     7

Таблица теперь имеет 17 меньше строк.

Смотрите также

| | | |

Похожие темы