Дневные диапазоны цен
Дневной диапазон цены акции — хороший индикатор её рыночной волатильности.
Вы работаете аналитиком данных в инвестиционной компании. Ваш руководитель хочет рассчитать дневной диапазон цен для акций десяти крупнейших технологических компаний мира.
У вас есть список CSV-файлов stock_list с ежедневными ценами акций. Для каждого файла вам нужно добавить столбец с диапазоном. Младший аналитик данных написал для этого следующий код на R:
for (file in file_list) {
df <- read.csv(file)
df$range <- 0
for (r in 1:nrow(df)) {
df$range[r] <- df$High[r] - df$Low[r]
}
write.csv(df, file)
}
Вы хотите выполнить этот код параллельно на компьютере Apple Mac и планируете использовать кластер типа FORK для более эффективной работы. Пакет parallel уже загружен в вашем рабочем пространстве.
Это упражнение является частью курса
Параллельное программирование на R
Инструкции к упражнению
- Используя предоставленный код, создайте функцию
add_range(), которая принимает путь к файлу в качестве аргумента и добавляет в этот файл столбецrange. - Создайте кластер типа FORK из четырёх ядер.
- Примените функцию
add_range()к каждому элементуstock_listв параллельном режиме. - Остановите кластер.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Make a function out of existing code
add_range <- function (file) {
___
}
# Make FORK cluster of four cores
cluster <- makeCluster(___, type = "___")
# Apply add_range to stock_list in parallel
out <- parLapply(___, ___, ___)
# Stop cluster
___