exponenta event banner

Расчеты на массивах наборов данных

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

Загрузить данные образца.

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

См. также

| | |

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

Подробнее