ПочатиПочніть безкоштовно

Денні діапазони цін

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

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