48 // Описательная статистика для отфильтрованного столбца age
49 std::sort(std::begin(cleanAge), std::end(cleanAge));
50 size_t size{cleanAge.size()};
51 double median{};
52
53 if (size % 2 == 0) { // Медианное значение при четном количестве элементов
54 median = (cleanAge.at(size / 2 - 1) + cleanAge.at(size / 2)) / 2;
55 }
56 else { // Медианное значение при нечетном количестве элементов
57 median = cleanAge.at(size / 2);
58 }
59
60 std::cout << "\nDescriptive statistics for the age column:\n"
61 << fmt::format("Passengers with age data: {}\n", size)
62 << fmt::format("Average age: {:.2f}\n", std::accumulate(
63 std::begin(cleanAge), std::end(cleanAge), 0.0) / size)
64 << fmt::format("Minimum age: {:.2f}\n", cleanAge.front())
65 << fmt::format("Maximum age: {:.2f}\n", cleanAge.back())
66 << fmt::format("Median age: {:.2f}\n", median);
67
Descriptive statistics for the age column:
Passengers with age data: 1046
Average age: 29.88
Minimum age: 0.17
Maximum age: 80.00
Median age: 28.00