Main Content

테이블에 행 추가나 삭제하기

이 예제에서는 테이블에서 행을 추가하거나 삭제하는 방법을 보여줍니다. 변수 편집기를 사용하여 테이블을 편집할 수도 있습니다.

샘플 데이터 불러오기

샘플 환자 데이터를 불러오고 테이블 T를 생성합니다.

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

   100     8

테이블 T에는 100개 행과 8개 변수가 있습니다.

결합을 통해 행 추가하기

쉼표로 구분된 파일 morePatients.csv에서 테이블 T2로 추가 환자에 대한 데이터를 읽어옵니다. 그런 다음, 테이블 T의 끝에 T2의 행을 추가합니다.

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

   104     8

테이블 Tnew에는 104개 행이 있습니다. 두 개의 테이블을 세로로 결합하려면 두 테이블의 변수 개수와 변수 이름이 동일해야 합니다. 변수 이름이 서로 다를 경우 테이블의 새 행을 다른 테이블의 행에 직접 할당할 수 있습니다. 예를 들면 T(end+1:end+4,:) = T2와 같습니다.

셀형 배열의 행을 추가하기

셀형 배열에 저장된 행을 새 행으로 추가하려면 테이블의 끝에 셀형 배열을 세로로 결합하십시오. 셀형 배열에 적절한 개수의 열이 있는 경우 셀형 배열로부터 직접 결합할 수 있으며, 해당 셀의 내용을 대응되는 테이블 변수로 결합할 수 있습니다.

cellPatients = {'Trujillo','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 = 'Nonbinary';
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 = 'Russo';
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

   107     8

unique가 두 개의 중복 행을 삭제했습니다.

행 번호를 기준으로 행 삭제

테이블에서 행 18, 20, 21을 삭제합니다.

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

   104     8

이제, 테이블에 103명의 환자에 대한 정보가 있습니다.

행 이름을 기준으로 행 삭제하기

우선, 식별자 변수 LastName을 행 이름으로 지정합니다. 그런 다음, 변수 LastNameTnew에서 삭제합니다. 마지막으로, 행 이름을 사용하여 인덱싱하고 행을 삭제합니다.

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

   103     7

이제 테이블에서 행과 변수의 개수가 각각 하나씩 줄어듭니다.

삭제할 행 검색하기

테이블에서 관측값을 검색할 수도 있습니다. 예를 들어, 30세 미만의 모든 환자에 대한 행을 삭제해 보겠습니다.

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

    86     7

이제 테이블에서 행의 개수가 17개 줄어듭니다.

참고 항목

| | | |

관련 항목