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