일일 가격 범위
주가의 일일 범위는 시장 변동성을 가늠하기에 좋은 지표예요.
여러분은 투자 회사의 데이터 분석가로 일하고 있어요. 상사는 전 세계 상위 10개 테크 기업의 주식에 대해 일일 범위를 계산하길 원해요.
일일 주가가 담긴 CSV 파일 목록 stock_list가 있어요. 각 파일마다 range 열을 추가하려고 합니다. 주니어 데이터 분석가가 이를 위해 다음 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의 병렬 프로그래밍
연습 안내
- 제공된 코드를 활용해 파일 경로를 인수로 받아 해당 파일에
range열을 추가하는 함수add_range()를 만드세요. - 코어 4개로 FORK 클러스터를 만드세요.
stock_list의 모든 원소에add_range()를 병렬로 적용하세요.- 클러스터를 중지하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# 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
___