Лучший способ рассказать историю о ваших данных — это сгруппировать их в соответствующие фрагменты. С помощью этих фрагментов вы можете проверять гипотезы и искать закономерности. Для этого необходимо иметь подход, позволяющий динамически изменять входные переменные и группы. Здесь я покажу вам, как развить этот навык с помощью varfun.
Делайте все, что хотите, с varfun
Эта забавнаяфункция является более мощной, чем любая другая, потому что помимо выполнения пакетных операций она также разбивает вашу таблицу на более управляемые мини-таблицы, а затем группирует данные в этих таблицах. Вы можете сделать все это с помощью скриптов, но я могу сказать по своему опыту: каждое использование varfun экономит вам как минимум десять строк кода, пять фиктивных переменных и несколько логических операторов. Гораздо проще отладить и посмотреть, что происходит.
Мы начнем с некоторых предварительно загруженных данных MATLAB.
load census1994
Давайте проверим переменные в таблице adultdata.
adultdata.Properties.VariableNames % (this is case-sensitive)
Вы должны увидеть такой список:
Давайте попробуем несколько комбинаций.
«Каков средний возраст переписчика каждой расы?»
varfun( @(x) mean(x), adultdata, 'GroupingVariables', {'race'}, 'InputVariables', {'age'}, )
«Каков средний прирост капитала (доход от инвестиций) участника переписи каждой расы?»
varfun( @(x) mean(x), adultdata, 'GroupingVariables', {'race'}, 'InputVariables', {'capital_gain'}, )
«Каков средний прирост капитала (доход от вложений) переписчика разных расово-родовых групп?» — Это могло бы помочь нам ответить, получают ли люди, идентифицирующие себя как одну расу, больше за ту же работу, что и другие люди, которые идентифицировали себя как другую расу.
varfun( @(x) mean(x), adultdata, 'GroupingVariables', {'race','occupation'}, 'InputVariables', {'capital_gain'} )
Выход очень большой, потому что много разных профессий.
Как мы можем использовать эту информацию?
Используйте varfun для вывода таблицы
Как мы видели в случае с rowfun, вы можете указать тип вывода, который вы получите при выполнении varfun. Вот как это будет выглядеть:
myoutput = varfun( @(x) mean(x), adultdata, 'GroupingVariables', {'race','occupation'}, 'InputVariables', {'capital_gain'}, 'OutputFormat', 'table' )
Теперь вы можете запросить сводную таблицу myoutput:.
myoutput( myoutput.occupation=='Adm-clerical', : ) % Remember to use the colon because you want to retrieve all of the columns from your table %
Вы можете дополнительно отсортировать строки таблицы по интересующему столбцу. Мы можем использовать столбец Fun_capital_gain, который представляет собой среднее значение, рассчитанное с помощью varfun!
mysummary = myoutput( myoutput.occupation=='Adm-clerical', : ) sortrows( mysummary, 'Fun_capital_gain' )
Надеюсь, вы нашли это информативным.