Split-Apply-Combine
데이터 과학에서 자주 맞닥뜨리는 문제 중 하나는 데이터를 어떤 기준으로 분할하고(split), 각 그룹에 변환을 적용한 뒤(apply), 다시 하나의 데이터 프레임으로 결합하는(combine) 작업입니다. R에서는 이런 유형의 문제를 통틀어 split-apply-combine이라고 부릅니다. 이 과정에서 유용한 다양한 문제 유형과 함수들은 Intermediate R for Finance에서 더 자세히 다루게 되지만, 지금은 간단한 예제로 살펴보겠습니다.
cash 데이터 프레임에서, 회사 A의 cash_flow는 두 배로, 회사 B의 cash_flow는 세 배로 늘리고 싶다고 가정해 봅시다:
grouping <- cash$company
split_cash <- split(cash, grouping)
# 각 리스트 원소의 cash_flow 열에 접근하는 방법:
split_cash$A$cash_flow
[1] 1000 4000 550
split_cash$A$cash_flow <- split_cash$A$cash_flow * 2
split_cash$B$cash_flow <- split_cash$B$cash_flow * 3
new_cash <- unsplit(split_cash, grouping)
cash_flow 열에 어떻게 접근하는지 다시 한 번 보세요. 첫 번째 $는 split_cash 리스트의 A 원소에 접근하기 위한 것이고, 두 번째 $는 A 안의 데이터 프레임에서 cash_flow 열에 접근하기 위한 것입니다.
이 연습은 강의의 일부입니다
금융을 위한 R 입문
연습 안내
split_cash데이터 프레임이 준비되어 있습니다. 또한cash를 분할하는 데 사용한grouping도 제공됩니다.- 리스트 구조를 확인하기 위해
split_cash를 출력하세요. split_cash에서 회사B의cash_flow열을 출력하세요.- 안타깝게도 회사 A가 폐업했습니다. 회사 A의
cash_flow를0으로 설정하세요. grouping을 사용해unsplit()으로split_cash데이터 프레임을 다시 합치고, 결과를cash_no_A에 할당하세요.- 마지막으로, 수정된 데이터 프레임을 확인하기 위해
cash_no_A를 출력하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Print split_cash
# Print the cash_flow column of B in split_cash
split_cash$___$___
# Set the cash_flow column of company A in split_cash to 0
split_cash$___$___ <- ___
# Use the grouping to unsplit split_cash
cash_no_A <- unsplit(___, ___)
# Print cash_no_A