НачатьНачать бесплатно

Дневные диапазоны цен

Дневной диапазон цены акции — хороший индикатор её рыночной волатильности.

Вы работаете аналитиком данных в инвестиционной компании. Ваш руководитель хочет рассчитать дневной диапазон цен для акций десяти крупнейших технологических компаний мира. У вас есть список 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
___
Редактировать и запускать код