
% Mário Budzeľ, 318654, I., II., 3ZIH1A.

ds = datastore("airlinesmall.csv", 'TreatAsMissing', 'NA', 'MissingValue', 0);
data = read(ds);

% Filtrácia dát podľa letísk
origin = ismember(data.Origin, {'SAN'});
dest = ismember(data.Dest, {'SFO'});
filteredData = data(origin & dest, :);


% Výber potrebných stĺpcov
columns = filteredData(:,{'Origin', 'Dest', 'DepTime', 'ArrTime',  'ActualElapsedTime','CRSElapsedTime', 'ArrDelay', 'DepDelay'});
date = datetime(filteredData.Year,filteredData.Month,filteredData.DayofMonth);
selectedData = [columns, table(date, 'VariableNames',{'Date'})];
disp(selectedData);


% Reálny čas, Očakávaný čas
prejdeny_cas = renamevars( ...
    selectedData(:,{'ActualElapsedTime', 'CRSElapsedTime'}), ...
    {'ActualElapsedTime', 'CRSElapsedTime'}, ...
    {'Reálny čas', 'Očakávaný čas'});
prejdeny_cas.Rozdiel = prejdeny_cas.("Reálny čas") - prejdeny_cas.("Očakávaný čas");

disp(prejdeny_cas);


% Priemerné meškanie+skorý odchod pri odchode + odchýlka
meskanie_skory_odchod_str_hod = mean(selectedData.DepDelay);
meskanie_skory_odchod_odchl = std(selectedData.DepDelay);
meskanie_skory_odchod_rozpt = var(selectedData.DepDelay);

% Priemerné meškanie pri odchode + odchýlka
stlpec = selectedData.DepDelay(selectedData.DepDelay > 0, :);
meskanie_odchod_str_hod = mean(stlpec);
meskanie_odchod_odchl = std(stlpec);
meskanie_odchod_rozpt = var(stlpec);

% Priemerný skorý odchod + odchýlka
stlpec = selectedData.DepDelay(selectedData.DepDelay <= 0, :);
skory_odchod_str_hod = mean(stlpec);
skory_odchod_odchl = std(stlpec);
skory_odchod_rozpt = var(stlpec);

% Priemerné meškanie + skorý príchod pri príchode + odchýlka
meskanie_skory_prichod_str_hod = mean(selectedData.ArrDelay);
meskanie_skory_prichod_odchl = std(selectedData.ArrDelay);
meskanie_skory_prichod_rozpt = var(selectedData.ArrDelay);

% Priemerné meškanie pri odchode + odchýlka
stlpec = selectedData.ArrDelay(selectedData.ArrDelay > 0, :);
meskanie_prichod_str_hod = mean(stlpec);
meskanie_prichod_odchl = std(stlpec);
meskanie_prichod_rozpt = var(stlpec);

% Priemerný skorý príchod + odchýlka
stlpec = selectedData.ArrDelay(selectedData.ArrDelay <= 0, :);
skory_prichod_str_hod = mean(stlpec);
skory_prichod_odchl = std(stlpec);
skory_prichod_rozpt = var(stlpec);

% Priemerný rozdiel medzi reálnym a očakávaným časom + odchýlka
real_ocak_cas_roz_str_hod = mean(prejdeny_cas.Rozdiel);
real_ocak_cas_roz_odchl = std(prejdeny_cas.Rozdiel);
real_ocak_cas_roz_rozpt = var(prejdeny_cas.Rozdiel);

stredna_hodnota = [round(meskanie_skory_odchod_str_hod,2);
    round(meskanie_odchod_str_hod,2);
    round(skory_odchod_str_hod,2);
    round(meskanie_skory_prichod_str_hod,2);
    round(meskanie_prichod_str_hod,2);
    round(skory_prichod_str_hod,2);
    round(real_ocak_cas_roz_str_hod,2)];

smerodajna_odchylka = [round(meskanie_skory_odchod_odchl,2);
    round(meskanie_odchod_odchl,2);
    round(skory_odchod_odchl,2);
    round(meskanie_skory_prichod_odchl,2);
    round(meskanie_prichod_odchl,2);
    round(skory_prichod_odchl,2);
    round(real_ocak_cas_roz_odchl,2)];

rozptyl = [round(meskanie_skory_odchod_rozpt,2);
    round(meskanie_odchod_rozpt,2);
    round(skory_odchod_rozpt,2);
    round(meskanie_skory_prichod_rozpt,2);
    round(meskanie_prichod_rozpt,2);
    round(skory_prichod_rozpt,2);
    round(real_ocak_cas_roz_rozpt,2)];

nazvy = ["Meškanie + skorý odchod";
    "Meškanie pri odchode";
    "Skorý odchod";
    "Meškanie + skorý príchod";
    "Meškanie pri príchode";
    "Skorý príchod";
    "Rozdiel reálneho času a očakaváneho"];

hodnoty = table(nazvy, stredna_hodnota, smerodajna_odchylka, rozptyl);
hodnoty = renamevars(hodnoty, {'nazvy', 'stredna_hodnota', 'smerodajna_odchylka', 'rozptyl'}, {' ', sprintf('Stredná hodnota x%c', 773), ['Smerodajná odchýlka ',char(hex2dec('03C3'))], ['Rozptyl ',char(hex2dec('03C3')),char(hex2dec('00B2'))]});
disp(hodnoty);


