Bắt đầu ngayBắt đầu miễn phí

Tách - Áp dụng - Kết hợp

Một bài toán phổ biến trong khoa học dữ liệu là tách data frame theo một nhóm, áp dụng một phép biến đổi cho từng nhóm, rồi ghép các phần đó lại thành một data frame duy nhất. Lớp bài toán này phổ biến đến mức trong R nó được đặt tên là split-apply-combine. Trong Intermediate R for Finance, bạn sẽ khám phá nhiều bài toán và các hàm hữu ích để giải chúng, nhưng bây giờ, hãy làm một ví dụ đơn giản.

Giả sử với data frame cash, bạn muốn nhân đôi cash_flow cho công ty A và nhân ba cho công ty B:

grouping <- cash$company
split_cash <- split(cash, grouping)

# Ta có thể truy cập cột cash_flow của từng phần tử list bằng:
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)

Xem lại cách bạn truy cập cột cash_flow. Dấu $ đầu tiên dùng để truy cập phần tử A của list split_cash. Dấu $ thứ hai dùng để truy cập cột cash_flow của data frame trong A.

Bài tập này là một phần của khóa học

Giới thiệu R cho Tài chính

Xem khóa học

Hướng dẫn bài tập

  • Data frame split_cash đã được cung cấp cho bạn. Ngoài ra, grouping dùng để tách cash cũng có sẵn.
  • In split_cash để xem qua list này.
  • In cột cash_flow cho công ty B trong split_cash.
  • Đáng tiếc, bạn biết rằng công ty A đã ngừng hoạt động. Đặt cash_flow của công ty A về 0.
  • Dùng grouping để unsplit() data frame split_cash. Gán kết quả cho cash_no_A.
  • Cuối cùng, in cash_no_A để xem data frame đã được chỉnh sửa.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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
Chỉnh sửa và Chạy Mã