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

Split-Apply-Combine

Типова задача в data science — розбити датафрейм за певною групою, застосувати перетворення до кожної групи, а потім зібрати все назад в один датафрейм. У R цей підхід настільки поширений, що має назву split-apply-combine. У курсі Intermediate R for Finance ви розглянете низку таких задач і корисних функцій для їх розв'язання, а зараз виконаємо простий приклад.

Припустімо, що для датафрейму cash ви хочете подвоїти cash_flow для компанії A та потроїти для компанії B:

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. Перший $ звертається до елемента A списку split_cash. Другий $ звертається до стовпця cash_flow датафрейму в A.

Ця вправа є частиною курсу

Вступ до R для фінансів

Переглянути курс

Інструкції до вправи

  • У вашому розпорядженні є датафрейм split_cash. Також доступний grouping, який використовувався для розбиття cash.
  • Виведіть split_cash, щоб переглянути список.
  • Виведіть стовпець cash_flow для компанії B у split_cash.
  • На жаль, ви дізналися, що компанія A припинила діяльність. Установіть cash_flow для компанії A рівним 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
Редагувати та запускати код