Сравните зарплаты проигрывателя состоянием травмы

В этом примере показано, как получить зарплату и данные о травме из STATS.com для отдельных бейсболистов. Чтобы сравнить зарплаты проигрывателей с и без травм, визуализируйте данные в графике рассеивания.

Этот пример требует ключа API STATS.com и секретного кода передачи для бейсбольных данных. Для получения дополнительной информации о ваших учетных данных для доступа к данным, свяжитесь с STATS.com.

Чтобы получить доступ к коду для этого примера, введите edit MLBSalaryVsInjuryExample.m.

Соединитесь с STATS.com

Создайте связь STATS.com sBaseball поскольку извлечение статистических бейсбольных данных для спортивной лиги назвало 'mlb'. Настройте связь, чтобы получить данные о зарплате путем определения параметра запроса 'Resource' как 'salaries'.

sBaseball = statsllc('gkfrq6fxabcehmn2yctrc6j5','qYR5abCQgc', ...
    'DataType','stats','LeagueAbbreviation','mlb', ...
    'Resource','salaries','SportName','baseball', ...
    'VersionNumber','v1');

Получите данные о зарплате и травме бейсболиста

Получите отдельные зарплаты бейсболиста data использование sBaseball.

data = fetch(sBaseball);

Получать отдельные данные бейсболиста playerData, получите доступ к вложенной структуре data. Создайте таблицу данных зарплаты salaryData путем получения полей структуры в playerData.

playerData = [data.apiResults.league.season.salaries.player];

salaryData = table((1:data.recordCount)',[playerData.playerId]', ...
    {playerData.firstName}',{playerData.lastName}', ...
    [data.apiResults.league.season.salaries.salary]', ...
    false(data.recordCount,1), ...
    'VariableNames',{'Record','PlayerId','FirstName', ...
    'LastName','Salary','Injured'});

salaryData содержит эти имена столбцов:

  • Record — Номер записи

  • PlayerId — Идентификатор бейсболиста

  • FirstName — Имя бейсболиста

  • LastName — Фамилия бейсболиста

  • Salary — Зарплата бейсболиста

  • Injured — Бейсболист ранил состояние

Раненное состояние бейсболиста является заполнителем для данных о травме.

Чтобы получить данные о травме, измените параметр запроса Resource значение от 'salaries' к 'participants' в связи STATS.com sBaseball. Получите отдельные данные бейсболиста с помощью sBaseball.

pause(2) 
sBaseball.Resource = 'participants';

data = fetch(sBaseball);

Цикл через получившуюся вложенную структуру data для каждого проигрывателя. Установите травмированное состояние в salaryData для тех проигрывателей, которые ранены.

numPlayers = data.recordCount;
for i = 1:numPlayers
    playerId = data.apiResults.league.players{i}.playerId;
    salaryData.Injured(salaryData.PlayerId == playerId) ...
        = data.apiResults.league.players{i}.isInjured;
end

Визуализируйте данные о зарплате и травме бейсболиста

Создайте график рассеивания зарплаты для каждого бейсболиста.

sInjured = scatter(salaryData.Record(salaryData.Injured), ...
    salaryData.Salary(salaryData.Injured),'Marker','+', ...
    'Linewidth',2);
hold on
sNotInjured = scatter(salaryData.Record(~salaryData.Injured), ...
    salaryData.Salary(~salaryData.Injured),'Marker','O', ...
    'Linewidth',2);
hold off
sInjured.MarkerFaceColor = 'flat'
grid on
b = gca
title('Player Salary Comparison')
xlabel('Record')
ylabel('Salary')
ytickformat(b,'usd')
legend({'Player with Injury','Player Without Injury'},'Location','best')

График рассеивания бейсболистов и их отображений зарплат. Сравните зарплаты для травмированных и непострадавших бейсболистов.

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

|

Похожие темы

Внешние веб-сайты