Вычисления на массивах набора данных

В этом примере показано, как выполнить вычисления на массивах набора данных.

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

Импортируйте данные из разделенного от запятой текстового файла testScores.csv.

ds = dataset('File','testScores.csv','Delimiter',',')
ds = 

    LastName          Sex             Test1    Test2    Test3    Test4
    'HOWARD'          'male'          90       87       93       92   
    'WARD'            'male'          87       85       83       90   
    'TORRES'          'male'          86       85       88       86   
    'PETERSON'        'female'        75       80       72       77   
    'GRAY'            'female'        89       86       87       90   
    'RAMIREZ'         'female'        96       92       98       95   
    'JAMES'           'male'          78       75       77       77   
    'WATSON'          'female'        91       94       92       90   
    'BROOKS'          'female'        86       83       85       89   
    'KELLY'           'male'          79       76       82       80   

Существует 4 экзаменационных отметки для каждого из 10 студентов в широком формате.

Средние переменные типа массив набора данных.

Вычислите среднюю (среднюю) экзаменационную отметку для каждого студента в массиве набора данных и сохраните его в новой переменной, TestAvg. Экзаменационные отметки находятся в столбцах 3 - 6.

Используйте double преобразовывать заданные переменные типа массив набора данных в числовой массив. Затем вычислите среднее значение через второе измерение (через столбцы), чтобы получить тестовое среднее значение для каждого студента.

ds.TestAvg = mean(double(ds(:,3:6)),2);
ds(:,{'LastName','TestAvg'})
ans = 

    LastName          TestAvg
    'HOWARD'           90.5  
    'WARD'            86.25  
    'TORRES'          86.25  
    'PETERSON'           76  
    'GRAY'               88  
    'RAMIREZ'         95.25  
    'JAMES'           76.75  
    'WATSON'          91.75  
    'BROOKS'          85.75  
    'KELLY'           79.25  

Обобщите массив набора данных с помощью сгруппированной переменной.

Вычислите средние и максимальные средние экзаменационные отметки для каждого пола.

stats = grpstats(ds,'Sex',{'mean','max'},'DataVars','TestAvg')
stats = 

              Sex             GroupCount    mean_TestAvg    max_TestAvg
    male      'male'          5              83.8            90.5      
    female    'female'        5             87.35           95.25      

Это возвращает новый массив набора данных, содержащий заданную итоговую статистику для каждого уровня сгруппированной переменной, Sex.

Замена значений данных.

Знаменатель для каждой экзаменационной отметки равняется 100. Преобразуйте знаменатель экзаменационной отметки в 25.

scores = double(ds(:,3:6));
newScores = scores*25/100;
ds = replacedata(ds,newScores,3:6)
ds = 

    LastName          Sex             Test1    Test2    Test3    Test4    TestAvg
    'HOWARD'          'male'           22.5    21.75    23.25       23     90.5  
    'WARD'            'male'          21.75    21.25    20.75     22.5    86.25  
    'TORRES'          'male'           21.5    21.25       22     21.5    86.25  
    'PETERSON'        'female'        18.75       20       18    19.25       76  
    'GRAY'            'female'        22.25     21.5    21.75     22.5       88  
    'RAMIREZ'         'female'           24       23     24.5    23.75    95.25  
    'JAMES'           'male'           19.5    18.75    19.25    19.25    76.75  
    'WATSON'          'female'        22.75     23.5       23     22.5    91.75  
    'BROOKS'          'female'         21.5    20.75    21.25    22.25    85.75  
    'KELLY'           'male'          19.75       19     20.5       20    79.25  

Первые две линии кода извлекают тестовые данные и выполняют желаемое вычисление. Затем replacedata вставляет новые экзаменационные отметки назад в массив набора данных.

Переменная средних значений экзаменационной отметки, TestAvg, теперь итоговый счет для каждого студента.

Поменяйте имя переменной.

Поменяйте имя переменной на Final.

ds.Properties.VarNames{end} = 'Final';
ds
ds = 

    LastName          Sex             Test1    Test2    Test3    Test4    Final
    'HOWARD'          'male'           22.5    21.75    23.25       23     90.5
    'WARD'            'male'          21.75    21.25    20.75     22.5    86.25
    'TORRES'          'male'           21.5    21.25       22     21.5    86.25
    'PETERSON'        'female'        18.75       20       18    19.25       76
    'GRAY'            'female'        22.25     21.5    21.75     22.5       88
    'RAMIREZ'         'female'           24       23     24.5    23.75    95.25
    'JAMES'           'male'           19.5    18.75    19.25    19.25    76.75
    'WATSON'          'female'        22.75     23.5       23     22.5    91.75
    'BROOKS'          'female'         21.5    20.75    21.25    22.25    85.75
    'KELLY'           'male'          19.75       19     20.5       20    79.25

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

| | |

Связанные примеры

Больше о