Тренинг Платформа Engee (LTC/MBD)
Язык Julia
Практика по работе с таблицами
В наборе данных содержатся измерения антропометрических показателей, полученных в ходе двух исследований на разных группах участников. Одно исследование было проведено в 1999 году, другое в 2016. В каждой группе было примерно по 7000 участников.
У вас есть два файла: data/bodymeasure1999.xlsx и data/bodymeasure2016.xlsx. Каждая строка – это показатели одного конкретного участника. Первый столбец содержит идентификационный номер участника, остальные – вес [кг], рост [см], длину бедра [см], длину плеча [см], окружность плеча [см], окружность талии [см] и толщину подлопаточной кожной складки [мм].
Шаг 1
Загрузите таблицы из файлов data/bodymeasures2016.xlsx и data/bodymeasure1999.xlsx в переменные bm1999 и bm2016. Данные, как всегда, находятся на листе Sheet1.
using DataFrames, XLSX
# Впишите ваш код
Подсказка
Синтаксис команды для считывания таблицы в формат DataFrame выглядит следующим образом:
bm = DataFrame( XLSX.readtable( "data/file.xlsx", "Sheet1" ));
Решение
using DataFrames, XLSX
bm1999 = DataFrame( XLSX.readtable( "data/bodymeasures1999.xlsx", "Sheet1" ));
bm2016 = DataFrame( XLSX.readtable( "data/bodymeasures2016.xlsx", "Sheet1" ));
Шаг 2
Отсортируйте таблицу bm1999 по показателю Height и выведите последние 5 строк отсортированной таблицы.
Подсказка
1. Команде sort нужно передать сортируемую таблицу в качестве первого аргумента и столбец, по которому производится сортировка – в качестве второго аргумента
2. Чтобы получить последние 5 строк таблицы, проиндексируйте ее при помощи диапазона end-4:end. Поскольку это таблица и после индекса строк нужен индекс столбцов, вторым индексом укажите, что вам нужны все столбцы :.
Решение
(sort(bm1999, "Height"))[end-4:end, :]
Шаг 3
Создайте матрицу m1999, где будут находиться только столбцы со второго до последнего столбцы таблицы bm1999. Для этого после индексации преобразуйте таблицу в матрицу при помощи функции Matrix().
Подсказка
1. Проиндексируйте таблицу, используя в качестве первого индекса знак : (все строки), а в качестве второго – диапазон 2:end.
2. Не забудьте передать новую таблицу в качестве аргумента функции Matrix().
Решение
m1999 = Matrix( bm1999[:, 2:end] )
Шаг 4
Преобразование в матрицу нам нужно было чтобы рассчитать статистические параметры данных при помощи низкоуровневой библиотеки Statistics.
Найдите медиану каждого столбца и поместите результат в вектор med1999.
using Statistics
# Впишите ваш код
Подсказка
Чтобы найти медиану именно по столбцам, передайте в качестве второго аргумента функции median параметр dims=1. В качестве первого аргумента передайте матрицу m1999.
Решение
using Statistics
med1999 = median( m1999, dims=1 )
Шаг 5
Повторите прошлый шаг, теперь для данных 2016 года. Поместите результаты в вектор med2016.
Подсказка
Для выполнения этого шага нужно повторить команды прошлых двух ячеек. Аналогичным образом, создайте переменные m2016 и med2016.
Решение
m2016 = Matrix( bm2016[:, 2:end] )
med2016 = median( m2016, dims=1 )
Шаг 6
Рассчитайте, на сколько процентов изменилась медиана каждого из параметров с 1999 до 2016.
Подсказка
Чтобы узнать, на сколько процентов “одно число больше другого”, нужно разделить первое число на второе, вычесть 1 и умножить весь результат на 100. Не забудьте использовать поэлементные операции деления ./, вычитания .- и умножения .*.
Решение
(med2016./med1999 .- 1) .* 100