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

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

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

Импортируйте данные из разделенного от запятой текстового файла 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

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

| | |

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

Больше о