Main Content

그룹별 계산

라이브 편집기에서 그룹별로 요약, 변환 또는 필터링합니다

R2021b 이후

설명

그룹별 계산 작업을 사용하면 대화형 방식으로 데이터를 그룹화하고 요약 통계량을 계산하고 변환을 수행하고 각 그룹에 필터를 적용할 수 있습니다. 이 작업은 라이브 스크립트의 MATLAB® 코드를 자동으로 생성합니다.

이 작업을 사용하여 다음을 수행할 수 있습니다.

  • 배열, 테이블 또는 타임테이블의 데이터 그룹을 정의합니다.

  • 각 그룹화를 기반으로 데이터를 요약, 변환 또는 필터링합니다

  • 계산 결과를 포함한 새 테이블 또는 타임테이블을 출력합니다.

관련 함수

그룹별 계산groupsummary 함수, grouptransform 함수, groupfilter 함수를 사용하는 코드를 생성합니다.

Compute by Group task in the Live Editor

작업 열기

MATLAB 편집기의 라이브 스크립트에 그룹별 계산 작업을 추가하려면 다음을 수행하십시오.

  • 라이브 편집기 탭에서 작업 > 그룹별 계산을 선택합니다.

  • 스크립트의 코드 블록에 관련 키워드를 입력합니다(예: group). 제안된 명령 완성 항목에서 그룹별 계산을 선택합니다.

예제

모두 확장

데이터를 대화형 방식으로 그룹화하고, 연산을 수행할 변수를 지정하고, 라이브 편집기에서 그룹별 계산 작업을 통해 통계량을 계산하여 데이터를 요약합니다.

샘플 파일 outages.csv를 사용하여 타임테이블을 만듭니다. 파일에는 정전 기록을 나타내는 6개 열의 데이터가 포함되어 있습니다. RegionCause 열 방향 변수를 categorical형 배열로 변환하고 타임테이블을 표시합니다.

outages = readtimetable("outages.csv");
outages.Region = categorical(outages.Region);
outages.Cause = categorical(outages.Cause)
outages=1468×5 timetable
       OutageTime        Region       Loss     Customers     RestorationTime          Cause     
    ________________    _________    ______    __________    ________________    _______________

    2002-02-01 12:18    SouthWest    458.98    1.8202e+06    2002-02-07 16:50    winter storm   
    2003-01-23 00:49    SouthEast    530.14    2.1204e+05                 NaT    winter storm   
    2003-02-07 21:15    SouthEast     289.4    1.4294e+05    2003-02-17 08:14    winter storm   
    2004-04-06 05:44    West         434.81    3.4037e+05    2004-04-06 06:10    equipment fault
    2002-03-16 06:18    MidWest      186.44    2.1275e+05    2002-03-18 23:23    severe storm   
    2003-06-18 02:49    West              0             0    2003-06-18 10:54    attack         
    2004-06-20 14:39    West         231.29           NaN    2004-06-20 19:16    equipment fault
    2002-06-06 19:28    West         311.86           NaN    2002-06-07 00:51    equipment fault
    2003-07-16 16:23    NorthEast    239.93         49434    2003-07-17 01:12    fire           
    2004-09-27 11:09    MidWest      286.72         66104    2004-09-27 16:37    equipment fault
    2004-09-05 17:48    SouthEast    73.387         36073    2004-09-05 20:46    equipment fault
    2004-05-21 21:45    West         159.99           NaN    2004-05-22 04:23    equipment fault
    2002-09-01 18:22    SouthEast    95.917         36759    2002-09-01 19:12    severe storm   
    2003-09-27 07:32    SouthEast       NaN    3.5517e+05    2003-10-04 07:02    severe storm   
    2003-11-12 06:12    West         254.09    9.2429e+05    2003-11-17 02:04    winter storm   
    2004-09-18 05:54    NorthEast         0             0                 NaT    equipment fault
      ⋮

라이브 편집기에서 그룹별 계산 작업을 엽니다. 정전이 발생한 5개 지역을 기준으로 데이터를 그룹화하려면 입력 데이터로 outages를 선택하고 Region 변수의 고유한 값을 기준으로 그룹화합니다. 그런 다음 계산 대상 필드에서 모든 숫자형 변수를 선택하여 LossCustomers 변수에 대해 계산합니다.

그룹별 계산 작업에서는 그룹에 대해 세 가지 다른 유형의 계산을 수행할 수 있습니다. 정전 데이터를 요약하려면 계산 유형을 그룹별 통계량 계산으로 설정합니다. 그런 다음 숫자형 변수 LossCustomers의 평균과 최댓값을 계산하기 위해 그룹별 계산 필드를 사용하여 평균최댓값 방법을 선택합니다.

결과 타임테이블에는 각 지역의 정전에 대한 그룹 관측값 개수, 평균 전력 손실, 최대 전력 손실, 영향을 받는 평균 고객 수, 영향을 받는 최대 고객 수가 포함됩니다.

Live Task
outageStats=5×6 table
     Region      GroupCount    mean_Loss    max_Loss    mean_Customers    max_Customers
    _________    __________    _________    ________    ______________    _____________

    MidWest         142         1137.7        23141       2.4015e+05        3.972e+06  
    NorthEast       557         551.65        23418       1.4917e+05       5.9689e+06  
    SouthEast       389         495.35       8767.3       1.6776e+05       2.2249e+06  
    SouthWest        26         493.88         2796       2.6975e+05       1.8202e+06  
    West            354         433.37        16659       1.5201e+05         4.26e+06  

데이터를 대화형 방식으로 그룹화하고, 연산을 수행할 변수를 지정하고, 라이브 편집기에서 그룹별 계산 작업을 통해 변환 작업을 적용하여 데이터의 해석 가능성 또는 모양을 개선합니다.

샘플 파일 outages.csv를 사용하여 타임테이블을 만듭니다. 파일에는 정전 기록을 나타내는 6개 열의 데이터가 포함되어 있습니다. RegionCause 열 방향 변수를 categorical형 배열로 변환하고 타임테이블을 표시합니다.

outages = readtimetable("outages.csv");
outages.Region = categorical(outages.Region);
outages.Cause = categorical(outages.Cause)
outages=1468×5 timetable
       OutageTime        Region       Loss     Customers     RestorationTime          Cause     
    ________________    _________    ______    __________    ________________    _______________

    2002-02-01 12:18    SouthWest    458.98    1.8202e+06    2002-02-07 16:50    winter storm   
    2003-01-23 00:49    SouthEast    530.14    2.1204e+05                 NaT    winter storm   
    2003-02-07 21:15    SouthEast     289.4    1.4294e+05    2003-02-17 08:14    winter storm   
    2004-04-06 05:44    West         434.81    3.4037e+05    2004-04-06 06:10    equipment fault
    2002-03-16 06:18    MidWest      186.44    2.1275e+05    2002-03-18 23:23    severe storm   
    2003-06-18 02:49    West              0             0    2003-06-18 10:54    attack         
    2004-06-20 14:39    West         231.29           NaN    2004-06-20 19:16    equipment fault
    2002-06-06 19:28    West         311.86           NaN    2002-06-07 00:51    equipment fault
    2003-07-16 16:23    NorthEast    239.93         49434    2003-07-17 01:12    fire           
    2004-09-27 11:09    MidWest      286.72         66104    2004-09-27 16:37    equipment fault
    2004-09-05 17:48    SouthEast    73.387         36073    2004-09-05 20:46    equipment fault
    2004-05-21 21:45    West         159.99           NaN    2004-05-22 04:23    equipment fault
    2002-09-01 18:22    SouthEast    95.917         36759    2002-09-01 19:12    severe storm   
    2003-09-27 07:32    SouthEast       NaN    3.5517e+05    2003-10-04 07:02    severe storm   
    2003-11-12 06:12    West         254.09    9.2429e+05    2003-11-17 02:04    winter storm   
    2004-09-18 05:54    NorthEast         0             0                 NaT    equipment fault
      ⋮

라이브 편집기에서 그룹별 계산 작업을 엽니다. 정전이 발생한 10가지 원인을 기준으로 데이터를 그룹화하려면 입력 데이터로 outages를 선택하고 Cause 변수의 고유한 값을 기준으로 그룹화합니다. 그런 다음 계산 대상Loss 변수로 설정합니다.

그룹별 계산 작업에서는 그룹에 대해 세 가지 다른 유형의 계산을 수행할 수 있습니다. 정전 데이터를 변환하려면 계산 유형을 그룹별 변환으로 설정합니다. 그런 다음 누락된 전력 손실 값을 채우기 위해 그룹별 계산그룹 평균으로 누락값 채우기 방법으로 설정합니다.

결과 타임테이블에는 누락된 전력 손실이 동일한 원인으로 발생한 정전의 평균 전력 손실로 대체된 정전 데이터가 포함됩니다.

Live Task
outageTransform=1468×5 timetable
       OutageTime        Region       Loss     Customers     RestorationTime          Cause     
    ________________    _________    ______    __________    ________________    _______________

    2002-02-01 12:18    SouthWest    458.98    1.8202e+06    2002-02-07 16:50    winter storm   
    2003-01-23 00:49    SouthEast    530.14    2.1204e+05                 NaT    winter storm   
    2003-02-07 21:15    SouthEast     289.4    1.4294e+05    2003-02-17 08:14    winter storm   
    2004-04-06 05:44    West         434.81    3.4037e+05    2004-04-06 06:10    equipment fault
    2002-03-16 06:18    MidWest      186.44    2.1275e+05    2002-03-18 23:23    severe storm   
    2003-06-18 02:49    West              0             0    2003-06-18 10:54    attack         
    2004-06-20 14:39    West         231.29           NaN    2004-06-20 19:16    equipment fault
    2002-06-06 19:28    West         311.86           NaN    2002-06-07 00:51    equipment fault
    2003-07-16 16:23    NorthEast    239.93         49434    2003-07-17 01:12    fire           
    2004-09-27 11:09    MidWest      286.72         66104    2004-09-27 16:37    equipment fault
    2004-09-05 17:48    SouthEast    73.387         36073    2004-09-05 20:46    equipment fault
    2004-05-21 21:45    West         159.99           NaN    2004-05-22 04:23    equipment fault
    2002-09-01 18:22    SouthEast    95.917         36759    2002-09-01 19:12    severe storm   
    2003-09-27 07:32    SouthEast    697.41    3.5517e+05    2003-10-04 07:02    severe storm   
    2003-11-12 06:12    West         254.09    9.2429e+05    2003-11-17 02:04    winter storm   
    2004-09-18 05:54    NorthEast         0             0                 NaT    equipment fault
      ⋮

데이터를 대화형 방식으로 그룹화하고, 연산을 수행할 변수를 지정하고, 그룹별 계산을 통해 그룹 필터를 적용하여 데이터 세트의 특정 정보에 중점을 둡니다.

샘플 파일 outages.csv를 사용하여 타임테이블을 만듭니다. 파일에는 정전 기록을 나타내는 6개 열의 데이터가 포함되어 있습니다. RegionCause 열 방향 변수를 categorical형 배열로 변환하고 타임테이블을 표시합니다.

outages = readtimetable("outages.csv");
outages.Region = categorical(outages.Region);
outages.Cause = categorical(outages.Cause)
outages=1468×5 timetable
       OutageTime        Region       Loss     Customers     RestorationTime          Cause     
    ________________    _________    ______    __________    ________________    _______________

    2002-02-01 12:18    SouthWest    458.98    1.8202e+06    2002-02-07 16:50    winter storm   
    2003-01-23 00:49    SouthEast    530.14    2.1204e+05                 NaT    winter storm   
    2003-02-07 21:15    SouthEast     289.4    1.4294e+05    2003-02-17 08:14    winter storm   
    2004-04-06 05:44    West         434.81    3.4037e+05    2004-04-06 06:10    equipment fault
    2002-03-16 06:18    MidWest      186.44    2.1275e+05    2002-03-18 23:23    severe storm   
    2003-06-18 02:49    West              0             0    2003-06-18 10:54    attack         
    2004-06-20 14:39    West         231.29           NaN    2004-06-20 19:16    equipment fault
    2002-06-06 19:28    West         311.86           NaN    2002-06-07 00:51    equipment fault
    2003-07-16 16:23    NorthEast    239.93         49434    2003-07-17 01:12    fire           
    2004-09-27 11:09    MidWest      286.72         66104    2004-09-27 16:37    equipment fault
    2004-09-05 17:48    SouthEast    73.387         36073    2004-09-05 20:46    equipment fault
    2004-05-21 21:45    West         159.99           NaN    2004-05-22 04:23    equipment fault
    2002-09-01 18:22    SouthEast    95.917         36759    2002-09-01 19:12    severe storm   
    2003-09-27 07:32    SouthEast       NaN    3.5517e+05    2003-10-04 07:02    severe storm   
    2003-11-12 06:12    West         254.09    9.2429e+05    2003-11-17 02:04    winter storm   
    2004-09-18 05:54    NorthEast         0             0                 NaT    equipment fault
      ⋮

라이브 편집기에서 그룹별 계산 작업을 엽니다. 정전이 발생한 연도와 지역별로 데이터를 그룹화하려면 그룹화 기준을 사용하여 OutageTime 변수를 연도별로 비닝하고 고유한 값을 기준으로 Region 변수를 그룹화합니다. 그런 다음 계산 대상 필드에서 Loss 변수를 선택하여 전력 손실을 계산합니다.

그룹별 계산 작업에서는 그룹에 대해 세 가지 다른 유형의 계산을 수행할 수 있습니다. 정전 데이터를 필터링하려면 계산 유형을 그룹별 필터링으로 설정합니다. 그런 다음 그룹별 계산을 새 로컬 함수로 설정하고, 유지할 이상값 데이터에 대해 true를 반환하고 이상값이 아니므로 필터링할 데이터에 대해 false를 반환하는 함수를 작성하여 필터를 직접 지정합니다.

결과 타임테이블에는 전력 손실이 해당 연도와 지역의 평균 손실에서 3 표준편차 범위 밖에 있는 이상값 정전 데이터만 포함됩니다.

Live Task
outageFilter=159×6 timetable
       OutageTime        Region       Loss     Customers     RestorationTime          Cause         year_OutageTime
    ________________    _________    ______    __________    ________________    _______________    _______________

    2004-04-06 05:44    West         434.81    3.4037e+05    2004-04-06 06:10    equipment fault         2004      
    2002-06-06 19:28    West         311.86           NaN    2002-06-07 00:51    equipment fault         2002      
    2005-03-08 16:37    SouthEast    1339.2    4.3003e+05    2005-03-10 20:42    winter storm            2005      
    2004-07-02 09:16    MidWest       15128    2.0104e+05    2004-07-06 14:11    thunder storm           2004      
    2002-04-20 16:46    MidWest       23141           NaN                 NaT    unknown                 2002      
    2002-12-10 10:45    MidWest       14493    3.0879e+06    2002-12-11 18:06    unknown                 2002      
    2002-05-18 11:04    MidWest      1389.1    1.3447e+05    2002-05-21 01:22    unknown                 2002      
    2003-09-22 00:53    MidWest      3995.8    6.7808e+05    2003-09-23 03:45    unknown                 2003      
    2005-11-05 12:46    NorthEast    2966.1           NaN    2005-11-06 21:40    unknown                 2005      
    2002-08-17 09:05    NorthEast     21673           NaN    2002-08-19 21:45    unknown                 2002      
    2004-09-16 19:42    NorthEast      4718           NaN                 NaT    unknown                 2004      
    2002-05-20 10:57    NorthEast    9116.6    2.4983e+06    2002-05-21 15:22    unknown                 2002      
    2003-09-05 20:15    SouthEast    1700.1    1.6393e+05    2003-09-10 19:59    thunder storm           2003      
    2004-09-20 12:37    SouthEast    8767.3    2.2249e+06    2004-10-02 06:00    severe storm            2004      
    2005-09-14 15:45    SouthEast    1839.2    3.4144e+05                 NaT    severe storm            2005      
    2003-09-14 16:09    NorthEast    2011.3    6.9368e+05    2003-09-24 07:44    severe storm            2003      
      ⋮

function tf = myFilterFcn(x)
% x is the data in a group from one computation variable
% tf is true, false, or a logical column vector with the same height as x
tf = isoutlier(x);
end

관련 예제

파라미터

모두 확장

그룹화 기준 드롭다운 목록에서 유효한 작업 공간 그룹화 변수를 선택하여 그룹을 지정합니다. 데이터가 테이블이나 타임테이블에 포함된 경우 그룹화할 테이블 변수를 추가로 선택합니다. 고유한 값을 기준으로 그룹화하거나 데이터를 비닝하는 방법을 지정할 수 있습니다.

계산 대상 드롭다운 목록에서 계산할 작업 공간 데이터를 선택합니다. 데이터가 테이블이나 타임테이블에 포함된 경우 계산할 테이블 변수를 선택합니다.

다음 계산 옵션 중 하나를 선택하십시오.

계산 유형설명
Compute stats by group데이터의 요약(또는 집계)입니다(예: 평균 또는 최댓값). 로컬 함수 이름 또는 함수 핸들을 제공하여 사용자 지정 함수를 제공할 수도 있습니다. 함수는 첫 번째 차원 길이가 1인 그룹당 하나의 엔터티를 반환해야 합니다. 자세한 내용은 groupsummary 항목을 참조하십시오.
Transform by group데이터를 변환합니다. 예를 들어, 2-노름으로 데이터를 스케일링하거나 누락된 데이터를 채웁니다. 로컬 함수 이름 또는 함수 핸들을 제공하여 사용자 지정 함수를 제공할 수도 있습니다. 함수는 첫 번째 차원 길이가 1이거나 입력 데이터와 동일한 행 개수를 가진 하나의 엔터티를 반환해야 합니다. 자세한 내용은 grouptransform 항목을 참조하십시오.
Filter by group필터링 계산을 정의하는 로컬 함수 또는 함수 핸들을 제공하여 각 그룹의 멤버를 필터링합니다. 함수는 선택할 그룹 멤버를 나타내는 데이터와 동일한 행 개수를 가진 논리형 스칼라 또는 논리형 열 벡터를 반환해야 합니다. 함수가 논리형 스칼라를 반환하는 경우 그룹의 모든 멤버가 필터링되거나(값이 false인 경우) 그룹의 모든 멤버가 필터링되지 않습니다(값이 true인 경우). 함수가 논리형 벡터를 반환하는 경우 대응하는 요소가 false이면 그룹의 멤버가 필터링됩니다. 대응하는 요소가 true이면 멤버가 유지됩니다. 자세한 내용은 groupfilter 항목을 참조하십시오.

모든 계산 유형에 대해 새로 만들기를 클릭하여 계산을 정의하는 새 함수를 라이브 스크립트에 만들 수 있습니다. 새로 만들기를 클릭하면 선택한 계산 유형에 적합한 구문을 사용하는 예제 함수가 라이브 스크립트에 자동으로 삽입됩니다. 예제 함수의 이름을 변경하는 경우 새 함수 이름을 사용하려면 라이브 작업의 드롭다운 목록에서 방법을 다시 선택합니다.

버전 내역

R2021b에 개발됨

모두 확장