Вычисления на таблицах

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

Функции rowfun и varfun, каждый применяет заданную функцию к таблице, все же много других функций, требуют числовых или гомогенных массивов как входных параметров. Можно извлечь данные из отдельных переменных, использующих точечную индексацию или из одной или нескольких переменных с помощью фигурных скобок. Извлеченные данные являются затем массивом, который можно использовать в качестве входа к другим функциям.

Чтение демонстрационных данных в таблицу

Считайте данные из разделенного от запятой текстового файла, testScores.csv, в таблицу с помощью функции readtable. testScores.csv содержит экзаменационные отметки для нескольких студентов. Используйте студенческие имена в первом столбце текстового файла, как строка называет в таблице.

T = readtable('testScores.csv','ReadRowNames',true)
T=10×4 table
                 Gender     Test1    Test2    Test3
                ________    _____    _____    _____

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

T является таблицей с 10 строками и четырьмя переменными.

Суммирование таблицы

Просмотрите тип данных, описание, модули и другую описательную статистику для каждой переменной при помощи функции summary, чтобы обобщить таблицу.

summary(T)
Variables:

    Gender: 10x1 cell array of character vectors

    Test1: 10x1 double

        Values:

            Min          75  
            Median     86.5  
            Max          96  

    Test2: 10x1 double

        Values:

            Min         75   
            Median      85   
            Max         94   

    Test3: 10x1 double

        Values:

            Min         72   
            Median      86   
            Max         98   

Сводные данные содержат минимум, медиану и максимальный счет к каждому тесту.

Нахождение среднего числа через каждую строку

Извлеките данные из вторых, третьих, и четвертых переменных с помощью фигурных скобок, {}, найдите среднее значение каждой строки и сохраните его в новой переменной, TestAvg.

T.TestAvg = mean(T{:,2:end},2)
T=10×5 table
                 Gender     Test1    Test2    Test3    TestAvg
                ________    _____    _____    _____    _______

    HOWARD      'male'       90       87       93          90 
    WARD        'male'       87       85       83          85 
    TORRES      'male'       86       85       88      86.333 
    PETERSON    'female'     75       80       72      75.667 
    GRAY        'female'     89       86       87      87.333 
    RAMIREZ     'female'     96       92       98      95.333 
    JAMES       'male'       78       75       77      76.667 
    WATSON      'female'     91       94       92      92.333 
    BROOKS      'female'     86       83       85      84.667 
    KELLY       'male'       79       76       82          79 

Также можно использовать имена переменных, T{:,{'Test1','Test2','Test3'}} или переменные индексы, T{:,2:4}, чтобы выбрать подмножество данных.

Вычисление статистики Используя группировку переменной

Вычислите среднее значение и максимум TestAvg полом студентов.

varfun(@mean,T,'InputVariables','TestAvg',...
       'GroupingVariables','Gender')
ans=2×3 table
     Gender     GroupCount    mean_TestAvg
    ________    __________    ____________

    'female'        5            87.067   
    'male'          5              83.4   

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

Максимальный счет к каждому тесту равняется 100. Используйте фигурные скобки, чтобы извлечь данные из таблицы и преобразовать экзаменационные отметки в 25 шкал точки.

T{:,2:end} = T{:,2:end}*25/100
T=10×5 table
                 Gender     Test1    Test2    Test3    TestAvg
                ________    _____    _____    _____    _______

    HOWARD      'male'       22.5    21.75    23.25      22.5 
    WARD        'male'      21.75    21.25    20.75     21.25 
    TORRES      'male'       21.5    21.25       22    21.583 
    PETERSON    'female'    18.75       20       18    18.917 
    GRAY        'female'    22.25     21.5    21.75    21.833 
    RAMIREZ     'female'       24       23     24.5    23.833 
    JAMES       'male'       19.5    18.75    19.25    19.167 
    WATSON      'female'    22.75     23.5       23    23.083 
    BROOKS      'female'     21.5    20.75    21.25    21.167 
    KELLY       'male'      19.75       19     20.5     19.75 

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

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

T.Properties.VariableNames{end} = 'Final'
T=10×5 table
                 Gender     Test1    Test2    Test3    Final 
                ________    _____    _____    _____    ______

    HOWARD      'male'       22.5    21.75    23.25      22.5
    WARD        'male'      21.75    21.25    20.75     21.25
    TORRES      'male'       21.5    21.25       22    21.583
    PETERSON    'female'    18.75       20       18    18.917
    GRAY        'female'    22.25     21.5    21.75    21.833
    RAMIREZ     'female'       24       23     24.5    23.833
    JAMES       'male'       19.5    18.75    19.25    19.167
    WATSON      'female'    22.75     23.5       23    23.083
    BROOKS      'female'     21.5    20.75    21.25    21.167
    KELLY       'male'      19.75       19     20.5     19.75

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

| | | | |

Похожие темы